<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />
<title>15-visualising-data</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

<style type="text/css">
    /*!
*
* Twitter Bootstrap
*
*/
/*!
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 * Copyright 2011-2016 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background-color: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
mark {
  background: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .navbar {
    display: none;
  }
  .btn > .caret,
  .dropup > .btn > .caret {
    border-top-color: #000 !important;
  }
  .label {
    border: 1px solid #000;
  }
  .table {
    border-collapse: collapse !important;
  }
  .table td,
  .table th {
    background-color: #fff !important;
  }
  .table-bordered th,
  .table-bordered td {
    border: 1px solid #ddd !important;
  }
}
@font-face {
  font-family: 'Glyphicons Halflings';
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
  content: "\002a";
}
.glyphicon-plus:before {
  content: "\002b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
  content: "\20ac";
}
.glyphicon-minus:before {
  content: "\2212";
}
.glyphicon-cloud:before {
  content: "\2601";
}
.glyphicon-envelope:before {
  content: "\2709";
}
.glyphicon-pencil:before {
  content: "\270f";
}
.glyphicon-glass:before {
  content: "\e001";
}
.glyphicon-music:before {
  content: "\e002";
}
.glyphicon-search:before {
  content: "\e003";
}
.glyphicon-heart:before {
  content: "\e005";
}
.glyphicon-star:before {
  content: "\e006";
}
.glyphicon-star-empty:before {
  content: "\e007";
}
.glyphicon-user:before {
  content: "\e008";
}
.glyphicon-film:before {
  content: "\e009";
}
.glyphicon-th-large:before {
  content: "\e010";
}
.glyphicon-th:before {
  content: "\e011";
}
.glyphicon-th-list:before {
  content: "\e012";
}
.glyphicon-ok:before {
  content: "\e013";
}
.glyphicon-remove:before {
  content: "\e014";
}
.glyphicon-zoom-in:before {
  content: "\e015";
}
.glyphicon-zoom-out:before {
  content: "\e016";
}
.glyphicon-off:before {
  content: "\e017";
}
.glyphicon-signal:before {
  content: "\e018";
}
.glyphicon-cog:before {
  content: "\e019";
}
.glyphicon-trash:before {
  content: "\e020";
}
.glyphicon-home:before {
  content: "\e021";
}
.glyphicon-file:before {
  content: "\e022";
}
.glyphicon-time:before {
  content: "\e023";
}
.glyphicon-road:before {
  content: "\e024";
}
.glyphicon-download-alt:before {
  content: "\e025";
}
.glyphicon-download:before {
  content: "\e026";
}
.glyphicon-upload:before {
  content: "\e027";
}
.glyphicon-inbox:before {
  content: "\e028";
}
.glyphicon-play-circle:before {
  content: "\e029";
}
.glyphicon-repeat:before {
  content: "\e030";
}
.glyphicon-refresh:before {
  content: "\e031";
}
.glyphicon-list-alt:before {
  content: "\e032";
}
.glyphicon-lock:before {
  content: "\e033";
}
.glyphicon-flag:before {
  content: "\e034";
}
.glyphicon-headphones:before {
  content: "\e035";
}
.glyphicon-volume-off:before {
  content: "\e036";
}
.glyphicon-volume-down:before {
  content: "\e037";
}
.glyphicon-volume-up:before {
  content: "\e038";
}
.glyphicon-qrcode:before {
  content: "\e039";
}
.glyphicon-barcode:before {
  content: "\e040";
}
.glyphicon-tag:before {
  content: "\e041";
}
.glyphicon-tags:before {
  content: "\e042";
}
.glyphicon-book:before {
  content: "\e043";
}
.glyphicon-bookmark:before {
  content: "\e044";
}
.glyphicon-print:before {
  content: "\e045";
}
.glyphicon-camera:before {
  content: "\e046";
}
.glyphicon-font:before {
  content: "\e047";
}
.glyphicon-bold:before {
  content: "\e048";
}
.glyphicon-italic:before {
  content: "\e049";
}
.glyphicon-text-height:before {
  content: "\e050";
}
.glyphicon-text-width:before {
  content: "\e051";
}
.glyphicon-align-left:before {
  content: "\e052";
}
.glyphicon-align-center:before {
  content: "\e053";
}
.glyphicon-align-right:before {
  content: "\e054";
}
.glyphicon-align-justify:before {
  content: "\e055";
}
.glyphicon-list:before {
  content: "\e056";
}
.glyphicon-indent-left:before {
  content: "\e057";
}
.glyphicon-indent-right:before {
  content: "\e058";
}
.glyphicon-facetime-video:before {
  content: "\e059";
}
.glyphicon-picture:before {
  content: "\e060";
}
.glyphicon-map-marker:before {
  content: "\e062";
}
.glyphicon-adjust:before {
  content: "\e063";
}
.glyphicon-tint:before {
  content: "\e064";
}
.glyphicon-edit:before {
  content: "\e065";
}
.glyphicon-share:before {
  content: "\e066";
}
.glyphicon-check:before {
  content: "\e067";
}
.glyphicon-move:before {
  content: "\e068";
}
.glyphicon-step-backward:before {
  content: "\e069";
}
.glyphicon-fast-backward:before {
  content: "\e070";
}
.glyphicon-backward:before {
  content: "\e071";
}
.glyphicon-play:before {
  content: "\e072";
}
.glyphicon-pause:before {
  content: "\e073";
}
.glyphicon-stop:before {
  content: "\e074";
}
.glyphicon-forward:before {
  content: "\e075";
}
.glyphicon-fast-forward:before {
  content: "\e076";
}
.glyphicon-step-forward:before {
  content: "\e077";
}
.glyphicon-eject:before {
  content: "\e078";
}
.glyphicon-chevron-left:before {
  content: "\e079";
}
.glyphicon-chevron-right:before {
  content: "\e080";
}
.glyphicon-plus-sign:before {
  content: "\e081";
}
.glyphicon-minus-sign:before {
  content: "\e082";
}
.glyphicon-remove-sign:before {
  content: "\e083";
}
.glyphicon-ok-sign:before {
  content: "\e084";
}
.glyphicon-question-sign:before {
  content: "\e085";
}
.glyphicon-info-sign:before {
  content: "\e086";
}
.glyphicon-screenshot:before {
  content: "\e087";
}
.glyphicon-remove-circle:before {
  content: "\e088";
}
.glyphicon-ok-circle:before {
  content: "\e089";
}
.glyphicon-ban-circle:before {
  content: "\e090";
}
.glyphicon-arrow-left:before {
  content: "\e091";
}
.glyphicon-arrow-right:before {
  content: "\e092";
}
.glyphicon-arrow-up:before {
  content: "\e093";
}
.glyphicon-arrow-down:before {
  content: "\e094";
}
.glyphicon-share-alt:before {
  content: "\e095";
}
.glyphicon-resize-full:before {
  content: "\e096";
}
.glyphicon-resize-small:before {
  content: "\e097";
}
.glyphicon-exclamation-sign:before {
  content: "\e101";
}
.glyphicon-gift:before {
  content: "\e102";
}
.glyphicon-leaf:before {
  content: "\e103";
}
.glyphicon-fire:before {
  content: "\e104";
}
.glyphicon-eye-open:before {
  content: "\e105";
}
.glyphicon-eye-close:before {
  content: "\e106";
}
.glyphicon-warning-sign:before {
  content: "\e107";
}
.glyphicon-plane:before {
  content: "\e108";
}
.glyphicon-calendar:before {
  content: "\e109";
}
.glyphicon-random:before {
  content: "\e110";
}
.glyphicon-comment:before {
  content: "\e111";
}
.glyphicon-magnet:before {
  content: "\e112";
}
.glyphicon-chevron-up:before {
  content: "\e113";
}
.glyphicon-chevron-down:before {
  content: "\e114";
}
.glyphicon-retweet:before {
  content: "\e115";
}
.glyphicon-shopping-cart:before {
  content: "\e116";
}
.glyphicon-folder-close:before {
  content: "\e117";
}
.glyphicon-folder-open:before {
  content: "\e118";
}
.glyphicon-resize-vertical:before {
  content: "\e119";
}
.glyphicon-resize-horizontal:before {
  content: "\e120";
}
.glyphicon-hdd:before {
  content: "\e121";
}
.glyphicon-bullhorn:before {
  content: "\e122";
}
.glyphicon-bell:before {
  content: "\e123";
}
.glyphicon-certificate:before {
  content: "\e124";
}
.glyphicon-thumbs-up:before {
  content: "\e125";
}
.glyphicon-thumbs-down:before {
  content: "\e126";
}
.glyphicon-hand-right:before {
  content: "\e127";
}
.glyphicon-hand-left:before {
  content: "\e128";
}
.glyphicon-hand-up:before {
  content: "\e129";
}
.glyphicon-hand-down:before {
  content: "\e130";
}
.glyphicon-circle-arrow-right:before {
  content: "\e131";
}
.glyphicon-circle-arrow-left:before {
  content: "\e132";
}
.glyphicon-circle-arrow-up:before {
  content: "\e133";
}
.glyphicon-circle-arrow-down:before {
  content: "\e134";
}
.glyphicon-globe:before {
  content: "\e135";
}
.glyphicon-wrench:before {
  content: "\e136";
}
.glyphicon-tasks:before {
  content: "\e137";
}
.glyphicon-filter:before {
  content: "\e138";
}
.glyphicon-briefcase:before {
  content: "\e139";
}
.glyphicon-fullscreen:before {
  content: "\e140";
}
.glyphicon-dashboard:before {
  content: "\e141";
}
.glyphicon-paperclip:before {
  content: "\e142";
}
.glyphicon-heart-empty:before {
  content: "\e143";
}
.glyphicon-link:before {
  content: "\e144";
}
.glyphicon-phone:before {
  content: "\e145";
}
.glyphicon-pushpin:before {
  content: "\e146";
}
.glyphicon-usd:before {
  content: "\e148";
}
.glyphicon-gbp:before {
  content: "\e149";
}
.glyphicon-sort:before {
  content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
  content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
  content: "\e152";
}
.glyphicon-sort-by-order:before {
  content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
  content: "\e154";
}
.glyphicon-sort-by-attributes:before {
  content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
  content: "\e156";
}
.glyphicon-unchecked:before {
  content: "\e157";
}
.glyphicon-expand:before {
  content: "\e158";
}
.glyphicon-collapse-down:before {
  content: "\e159";
}
.glyphicon-collapse-up:before {
  content: "\e160";
}
.glyphicon-log-in:before {
  content: "\e161";
}
.glyphicon-flash:before {
  content: "\e162";
}
.glyphicon-log-out:before {
  content: "\e163";
}
.glyphicon-new-window:before {
  content: "\e164";
}
.glyphicon-record:before {
  content: "\e165";
}
.glyphicon-save:before {
  content: "\e166";
}
.glyphicon-open:before {
  content: "\e167";
}
.glyphicon-saved:before {
  content: "\e168";
}
.glyphicon-import:before {
  content: "\e169";
}
.glyphicon-export:before {
  content: "\e170";
}
.glyphicon-send:before {
  content: "\e171";
}
.glyphicon-floppy-disk:before {
  content: "\e172";
}
.glyphicon-floppy-saved:before {
  content: "\e173";
}
.glyphicon-floppy-remove:before {
  content: "\e174";
}
.glyphicon-floppy-save:before {
  content: "\e175";
}
.glyphicon-floppy-open:before {
  content: "\e176";
}
.glyphicon-credit-card:before {
  content: "\e177";
}
.glyphicon-transfer:before {
  content: "\e178";
}
.glyphicon-cutlery:before {
  content: "\e179";
}
.glyphicon-header:before {
  content: "\e180";
}
.glyphicon-compressed:before {
  content: "\e181";
}
.glyphicon-earphone:before {
  content: "\e182";
}
.glyphicon-phone-alt:before {
  content: "\e183";
}
.glyphicon-tower:before {
  content: "\e184";
}
.glyphicon-stats:before {
  content: "\e185";
}
.glyphicon-sd-video:before {
  content: "\e186";
}
.glyphicon-hd-video:before {
  content: "\e187";
}
.glyphicon-subtitles:before {
  content: "\e188";
}
.glyphicon-sound-stereo:before {
  content: "\e189";
}
.glyphicon-sound-dolby:before {
  content: "\e190";
}
.glyphicon-sound-5-1:before {
  content: "\e191";
}
.glyphicon-sound-6-1:before {
  content: "\e192";
}
.glyphicon-sound-7-1:before {
  content: "\e193";
}
.glyphicon-copyright-mark:before {
  content: "\e194";
}
.glyphicon-registration-mark:before {
  content: "\e195";
}
.glyphicon-cloud-download:before {
  content: "\e197";
}
.glyphicon-cloud-upload:before {
  content: "\e198";
}
.glyphicon-tree-conifer:before {
  content: "\e199";
}
.glyphicon-tree-deciduous:before {
  content: "\e200";
}
.glyphicon-cd:before {
  content: "\e201";
}
.glyphicon-save-file:before {
  content: "\e202";
}
.glyphicon-open-file:before {
  content: "\e203";
}
.glyphicon-level-up:before {
  content: "\e204";
}
.glyphicon-copy:before {
  content: "\e205";
}
.glyphicon-paste:before {
  content: "\e206";
}
.glyphicon-alert:before {
  content: "\e209";
}
.glyphicon-equalizer:before {
  content: "\e210";
}
.glyphicon-king:before {
  content: "\e211";
}
.glyphicon-queen:before {
  content: "\e212";
}
.glyphicon-pawn:before {
  content: "\e213";
}
.glyphicon-bishop:before {
  content: "\e214";
}
.glyphicon-knight:before {
  content: "\e215";
}
.glyphicon-baby-formula:before {
  content: "\e216";
}
.glyphicon-tent:before {
  content: "\26fa";
}
.glyphicon-blackboard:before {
  content: "\e218";
}
.glyphicon-bed:before {
  content: "\e219";
}
.glyphicon-apple:before {
  content: "\f8ff";
}
.glyphicon-erase:before {
  content: "\e221";
}
.glyphicon-hourglass:before {
  content: "\231b";
}
.glyphicon-lamp:before {
  content: "\e223";
}
.glyphicon-duplicate:before {
  content: "\e224";
}
.glyphicon-piggy-bank:before {
  content: "\e225";
}
.glyphicon-scissors:before {
  content: "\e226";
}
.glyphicon-bitcoin:before {
  content: "\e227";
}
.glyphicon-btc:before {
  content: "\e227";
}
.glyphicon-xbt:before {
  content: "\e227";
}
.glyphicon-yen:before {
  content: "\00a5";
}
.glyphicon-jpy:before {
  content: "\00a5";
}
.glyphicon-ruble:before {
  content: "\20bd";
}
.glyphicon-rub:before {
  content: "\20bd";
}
.glyphicon-scale:before {
  content: "\e230";
}
.glyphicon-ice-lolly:before {
  content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
  content: "\e232";
}
.glyphicon-education:before {
  content: "\e233";
}
.glyphicon-option-horizontal:before {
  content: "\e234";
}
.glyphicon-option-vertical:before {
  content: "\e235";
}
.glyphicon-menu-hamburger:before {
  content: "\e236";
}
.glyphicon-modal-window:before {
  content: "\e237";
}
.glyphicon-oil:before {
  content: "\e238";
}
.glyphicon-grain:before {
  content: "\e239";
}
.glyphicon-sunglasses:before {
  content: "\e240";
}
.glyphicon-text-size:before {
  content: "\e241";
}
.glyphicon-text-color:before {
  content: "\e242";
}
.glyphicon-text-background:before {
  content: "\e243";
}
.glyphicon-object-align-top:before {
  content: "\e244";
}
.glyphicon-object-align-bottom:before {
  content: "\e245";
}
.glyphicon-object-align-horizontal:before {
  content: "\e246";
}
.glyphicon-object-align-left:before {
  content: "\e247";
}
.glyphicon-object-align-vertical:before {
  content: "\e248";
}
.glyphicon-object-align-right:before {
  content: "\e249";
}
.glyphicon-triangle-right:before {
  content: "\e250";
}
.glyphicon-triangle-left:before {
  content: "\e251";
}
.glyphicon-triangle-bottom:before {
  content: "\e252";
}
.glyphicon-triangle-top:before {
  content: "\e253";
}
.glyphicon-console:before {
  content: "\e254";
}
.glyphicon-superscript:before {
  content: "\e255";
}
.glyphicon-subscript:before {
  content: "\e256";
}
.glyphicon-menu-left:before {
  content: "\e257";
}
.glyphicon-menu-right:before {
  content: "\e258";
}
.glyphicon-menu-down:before {
  content: "\e259";
}
.glyphicon-menu-up:before {
  content: "\e260";
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  font-size: 10px;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.42857143;
  color: #000;
  background-color: #fff;
}
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
a {
  color: #337ab7;
  text-decoration: none;
}
a:hover,
a:focus {
  color: #23527c;
  text-decoration: underline;
}
a:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
figure {
  margin: 0;
}
img {
  vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  display: block;
  max-width: 100%;
  height: auto;
}
.img-rounded {
  border-radius: 3px;
}
.img-thumbnail {
  padding: 4px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  display: inline-block;
  max-width: 100%;
  height: auto;
}
.img-circle {
  border-radius: 50%;
}
hr {
  margin-top: 18px;
  margin-bottom: 18px;
  border: 0;
  border-top: 1px solid #eeeeee;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
[role="button"] {
  cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
  color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
  font-weight: normal;
  line-height: 1;
  color: #777777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
  margin-top: 18px;
  margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
  font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 9px;
  margin-bottom: 9px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
  font-size: 75%;
}
h1,
.h1 {
  font-size: 33px;
}
h2,
.h2 {
  font-size: 27px;
}
h3,
.h3 {
  font-size: 23px;
}
h4,
.h4 {
  font-size: 17px;
}
h5,
.h5 {
  font-size: 13px;
}
h6,
.h6 {
  font-size: 12px;
}
p {
  margin: 0 0 9px;
}
.lead {
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .lead {
    font-size: 19.5px;
  }
}
small,
.small {
  font-size: 92%;
}
mark,
.mark {
  background-color: #fcf8e3;
  padding: .2em;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.text-justify {
  text-align: justify;
}
.text-nowrap {
  white-space: nowrap;
}
.text-lowercase {
  text-transform: lowercase;
}
.text-uppercase {
  text-transform: uppercase;
}
.text-capitalize {
  text-transform: capitalize;
}
.text-muted {
  color: #777777;
}
.text-primary {
  color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
  color: #286090;
}
.text-success {
  color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
  color: #2b542c;
}
.text-info {
  color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
  color: #245269;
}
.text-warning {
  color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
  color: #66512c;
}
.text-danger {
  color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
  color: #843534;
}
.bg-primary {
  color: #fff;
  background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
  background-color: #286090;
}
.bg-success {
  background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
  background-color: #c1e2b3;
}
.bg-info {
  background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
  background-color: #afd9ee;
}
.bg-warning {
  background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
  background-color: #f7ecb5;
}
.bg-danger {
  background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
  background-color: #e4b9b9;
}
.page-header {
  padding-bottom: 8px;
  margin: 36px 0 18px;
  border-bottom: 1px solid #eeeeee;
}
ul,
ol {
  margin-top: 0;
  margin-bottom: 9px;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin-bottom: 0;
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}
.list-inline {
  padding-left: 0;
  list-style: none;
  margin-left: -5px;
}
.list-inline > li {
  display: inline-block;
  padding-left: 5px;
  padding-right: 5px;
}
dl {
  margin-top: 0;
  margin-bottom: 18px;
}
dt,
dd {
  line-height: 1.42857143;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0;
}
@media (min-width: 541px) {
  .dl-horizontal dt {
    float: left;
    width: 160px;
    clear: left;
    text-align: right;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .dl-horizontal dd {
    margin-left: 180px;
  }
}
abbr[title],
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted #777777;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}
blockquote {
  padding: 9px 18px;
  margin: 0 0 18px;
  font-size: inherit;
  border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
  margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
  display: block;
  font-size: 80%;
  line-height: 1.42857143;
  color: #777777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
  content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid #eeeeee;
  border-left: 0;
  text-align: right;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
  content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
  content: '\00A0 \2014';
}
address {
  margin-bottom: 18px;
  font-style: normal;
  line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
  font-family: monospace;
}
code {
  padding: 2px 4px;
  font-size: 90%;
  color: #c7254e;
  background-color: #f9f2f4;
  border-radius: 2px;
}
kbd {
  padding: 2px 4px;
  font-size: 90%;
  color: #888;
  background-color: transparent;
  border-radius: 1px;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
kbd kbd {
  padding: 0;
  font-size: 100%;
  font-weight: bold;
  box-shadow: none;
}
pre {
  display: block;
  padding: 8.5px;
  margin: 0 0 9px;
  font-size: 12px;
  line-height: 1.42857143;
  word-break: break-all;
  word-wrap: break-word;
  color: #333333;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border-radius: 2px;
}
pre code {
  padding: 0;
  font-size: inherit;
  color: inherit;
  white-space: pre-wrap;
  background-color: transparent;
  border-radius: 0;
}
.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}
.container {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
@media (min-width: 768px) {
  .container {
    width: 768px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 940px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1140px;
  }
}
.container-fluid {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
.row {
  margin-left: 0px;
  margin-right: 0px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  position: relative;
  min-height: 1px;
  padding-left: 0px;
  padding-right: 0px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
}
.col-xs-12 {
  width: 100%;
}
.col-xs-11 {
  width: 91.66666667%;
}
.col-xs-10 {
  width: 83.33333333%;
}
.col-xs-9 {
  width: 75%;
}
.col-xs-8 {
  width: 66.66666667%;
}
.col-xs-7 {
  width: 58.33333333%;
}
.col-xs-6 {
  width: 50%;
}
.col-xs-5 {
  width: 41.66666667%;
}
.col-xs-4 {
  width: 33.33333333%;
}
.col-xs-3 {
  width: 25%;
}
.col-xs-2 {
  width: 16.66666667%;
}
.col-xs-1 {
  width: 8.33333333%;
}
.col-xs-pull-12 {
  right: 100%;
}
.col-xs-pull-11 {
  right: 91.66666667%;
}
.col-xs-pull-10 {
  right: 83.33333333%;
}
.col-xs-pull-9 {
  right: 75%;
}
.col-xs-pull-8 {
  right: 66.66666667%;
}
.col-xs-pull-7 {
  right: 58.33333333%;
}
.col-xs-pull-6 {
  right: 50%;
}
.col-xs-pull-5 {
  right: 41.66666667%;
}
.col-xs-pull-4 {
  right: 33.33333333%;
}
.col-xs-pull-3 {
  right: 25%;
}
.col-xs-pull-2 {
  right: 16.66666667%;
}
.col-xs-pull-1 {
  right: 8.33333333%;
}
.col-xs-pull-0 {
  right: auto;
}
.col-xs-push-12 {
  left: 100%;
}
.col-xs-push-11 {
  left: 91.66666667%;
}
.col-xs-push-10 {
  left: 83.33333333%;
}
.col-xs-push-9 {
  left: 75%;
}
.col-xs-push-8 {
  left: 66.66666667%;
}
.col-xs-push-7 {
  left: 58.33333333%;
}
.col-xs-push-6 {
  left: 50%;
}
.col-xs-push-5 {
  left: 41.66666667%;
}
.col-xs-push-4 {
  left: 33.33333333%;
}
.col-xs-push-3 {
  left: 25%;
}
.col-xs-push-2 {
  left: 16.66666667%;
}
.col-xs-push-1 {
  left: 8.33333333%;
}
.col-xs-push-0 {
  left: auto;
}
.col-xs-offset-12 {
  margin-left: 100%;
}
.col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.col-xs-offset-9 {
  margin-left: 75%;
}
.col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.col-xs-offset-6 {
  margin-left: 50%;
}
.col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.col-xs-offset-3 {
  margin-left: 25%;
}
.col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.col-xs-offset-0 {
  margin-left: 0%;
}
@media (min-width: 768px) {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left;
  }
  .col-sm-12 {
    width: 100%;
  }
  .col-sm-11 {
    width: 91.66666667%;
  }
  .col-sm-10 {
    width: 83.33333333%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666667%;
  }
  .col-sm-7 {
    width: 58.33333333%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666667%;
  }
  .col-sm-4 {
    width: 33.33333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.66666667%;
  }
  .col-sm-1 {
    width: 8.33333333%;
  }
  .col-sm-pull-12 {
    right: 100%;
  }
  .col-sm-pull-11 {
    right: 91.66666667%;
  }
  .col-sm-pull-10 {
    right: 83.33333333%;
  }
  .col-sm-pull-9 {
    right: 75%;
  }
  .col-sm-pull-8 {
    right: 66.66666667%;
  }
  .col-sm-pull-7 {
    right: 58.33333333%;
  }
  .col-sm-pull-6 {
    right: 50%;
  }
  .col-sm-pull-5 {
    right: 41.66666667%;
  }
  .col-sm-pull-4 {
    right: 33.33333333%;
  }
  .col-sm-pull-3 {
    right: 25%;
  }
  .col-sm-pull-2 {
    right: 16.66666667%;
  }
  .col-sm-pull-1 {
    right: 8.33333333%;
  }
  .col-sm-pull-0 {
    right: auto;
  }
  .col-sm-push-12 {
    left: 100%;
  }
  .col-sm-push-11 {
    left: 91.66666667%;
  }
  .col-sm-push-10 {
    left: 83.33333333%;
  }
  .col-sm-push-9 {
    left: 75%;
  }
  .col-sm-push-8 {
    left: 66.66666667%;
  }
  .col-sm-push-7 {
    left: 58.33333333%;
  }
  .col-sm-push-6 {
    left: 50%;
  }
  .col-sm-push-5 {
    left: 41.66666667%;
  }
  .col-sm-push-4 {
    left: 33.33333333%;
  }
  .col-sm-push-3 {
    left: 25%;
  }
  .col-sm-push-2 {
    left: 16.66666667%;
  }
  .col-sm-push-1 {
    left: 8.33333333%;
  }
  .col-sm-push-0 {
    left: auto;
  }
  .col-sm-offset-12 {
    margin-left: 100%;
  }
  .col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-sm-offset-9 {
    margin-left: 75%;
  }
  .col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-sm-offset-6 {
    margin-left: 50%;
  }
  .col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-sm-offset-3 {
    margin-left: 25%;
  }
  .col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-sm-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 992px) {
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
    float: left;
  }
  .col-md-12 {
    width: 100%;
  }
  .col-md-11 {
    width: 91.66666667%;
  }
  .col-md-10 {
    width: 83.33333333%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-8 {
    width: 66.66666667%;
  }
  .col-md-7 {
    width: 58.33333333%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-5 {
    width: 41.66666667%;
  }
  .col-md-4 {
    width: 33.33333333%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-2 {
    width: 16.66666667%;
  }
  .col-md-1 {
    width: 8.33333333%;
  }
  .col-md-pull-12 {
    right: 100%;
  }
  .col-md-pull-11 {
    right: 91.66666667%;
  }
  .col-md-pull-10 {
    right: 83.33333333%;
  }
  .col-md-pull-9 {
    right: 75%;
  }
  .col-md-pull-8 {
    right: 66.66666667%;
  }
  .col-md-pull-7 {
    right: 58.33333333%;
  }
  .col-md-pull-6 {
    right: 50%;
  }
  .col-md-pull-5 {
    right: 41.66666667%;
  }
  .col-md-pull-4 {
    right: 33.33333333%;
  }
  .col-md-pull-3 {
    right: 25%;
  }
  .col-md-pull-2 {
    right: 16.66666667%;
  }
  .col-md-pull-1 {
    right: 8.33333333%;
  }
  .col-md-pull-0 {
    right: auto;
  }
  .col-md-push-12 {
    left: 100%;
  }
  .col-md-push-11 {
    left: 91.66666667%;
  }
  .col-md-push-10 {
    left: 83.33333333%;
  }
  .col-md-push-9 {
    left: 75%;
  }
  .col-md-push-8 {
    left: 66.66666667%;
  }
  .col-md-push-7 {
    left: 58.33333333%;
  }
  .col-md-push-6 {
    left: 50%;
  }
  .col-md-push-5 {
    left: 41.66666667%;
  }
  .col-md-push-4 {
    left: 33.33333333%;
  }
  .col-md-push-3 {
    left: 25%;
  }
  .col-md-push-2 {
    left: 16.66666667%;
  }
  .col-md-push-1 {
    left: 8.33333333%;
  }
  .col-md-push-0 {
    left: auto;
  }
  .col-md-offset-12 {
    margin-left: 100%;
  }
  .col-md-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-md-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-md-offset-9 {
    margin-left: 75%;
  }
  .col-md-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-md-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-md-offset-6 {
    margin-left: 50%;
  }
  .col-md-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-md-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-md-offset-3 {
    margin-left: 25%;
  }
  .col-md-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-md-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-md-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 1200px) {
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    float: left;
  }
  .col-lg-12 {
    width: 100%;
  }
  .col-lg-11 {
    width: 91.66666667%;
  }
  .col-lg-10 {
    width: 83.33333333%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-8 {
    width: 66.66666667%;
  }
  .col-lg-7 {
    width: 58.33333333%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-5 {
    width: 41.66666667%;
  }
  .col-lg-4 {
    width: 33.33333333%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-2 {
    width: 16.66666667%;
  }
  .col-lg-1 {
    width: 8.33333333%;
  }
  .col-lg-pull-12 {
    right: 100%;
  }
  .col-lg-pull-11 {
    right: 91.66666667%;
  }
  .col-lg-pull-10 {
    right: 83.33333333%;
  }
  .col-lg-pull-9 {
    right: 75%;
  }
  .col-lg-pull-8 {
    right: 66.66666667%;
  }
  .col-lg-pull-7 {
    right: 58.33333333%;
  }
  .col-lg-pull-6 {
    right: 50%;
  }
  .col-lg-pull-5 {
    right: 41.66666667%;
  }
  .col-lg-pull-4 {
    right: 33.33333333%;
  }
  .col-lg-pull-3 {
    right: 25%;
  }
  .col-lg-pull-2 {
    right: 16.66666667%;
  }
  .col-lg-pull-1 {
    right: 8.33333333%;
  }
  .col-lg-pull-0 {
    right: auto;
  }
  .col-lg-push-12 {
    left: 100%;
  }
  .col-lg-push-11 {
    left: 91.66666667%;
  }
  .col-lg-push-10 {
    left: 83.33333333%;
  }
  .col-lg-push-9 {
    left: 75%;
  }
  .col-lg-push-8 {
    left: 66.66666667%;
  }
  .col-lg-push-7 {
    left: 58.33333333%;
  }
  .col-lg-push-6 {
    left: 50%;
  }
  .col-lg-push-5 {
    left: 41.66666667%;
  }
  .col-lg-push-4 {
    left: 33.33333333%;
  }
  .col-lg-push-3 {
    left: 25%;
  }
  .col-lg-push-2 {
    left: 16.66666667%;
  }
  .col-lg-push-1 {
    left: 8.33333333%;
  }
  .col-lg-push-0 {
    left: auto;
  }
  .col-lg-offset-12 {
    margin-left: 100%;
  }
  .col-lg-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-lg-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-lg-offset-9 {
    margin-left: 75%;
  }
  .col-lg-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-lg-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-lg-offset-6 {
    margin-left: 50%;
  }
  .col-lg-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-lg-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-lg-offset-3 {
    margin-left: 25%;
  }
  .col-lg-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-lg-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-lg-offset-0 {
    margin-left: 0%;
  }
}
table {
  background-color: transparent;
}
caption {
  padding-top: 8px;
  padding-bottom: 8px;
  color: #777777;
  text-align: left;
}
th {
  text-align: left;
}
.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 18px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
  border-top: 0;
}
.table > tbody + tbody {
  border-top: 2px solid #ddd;
}
.table .table {
  background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
  padding: 5px;
}
.table-bordered {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
  background-color: #f5f5f5;
}
table col[class*="col-"] {
  position: static;
  float: none;
  display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
  position: static;
  float: none;
  display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
  background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
  background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
  background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
  background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
  background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
  background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
  background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
  background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
  background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
  background-color: #ebcccc;
}
.table-responsive {
  overflow-x: auto;
  min-height: 0.01%;
}
@media screen and (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 13.5px;
    overflow-y: hidden;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid #ddd;
  }
  .table-responsive > .table {
    margin-bottom: 0;
  }
  .table-responsive > .table > thead > tr > th,
  .table-responsive > .table > tbody > tr > th,
  .table-responsive > .table > tfoot > tr > th,
  .table-responsive > .table > thead > tr > td,
  .table-responsive > .table > tbody > tr > td,
  .table-responsive > .table > tfoot > tr > td {
    white-space: nowrap;
  }
  .table-responsive > .table-bordered {
    border: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:first-child,
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  .table-responsive > .table-bordered > thead > tr > td:first-child,
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
    border-left: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:last-child,
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  .table-responsive > .table-bordered > thead > tr > td:last-child,
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
    border-right: 0;
  }
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
    border-bottom: 0;
  }
}
fieldset {
  padding: 0;
  margin: 0;
  border: 0;
  min-width: 0;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 18px;
  font-size: 19.5px;
  line-height: inherit;
  color: #333333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}
label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
}
input[type="search"] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  line-height: normal;
}
input[type="file"] {
  display: block;
}
input[type="range"] {
  display: block;
  width: 100%;
}
select[multiple],
select[size] {
  height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
output {
  display: block;
  padding-top: 7px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
}
.form-control {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.form-control:-ms-input-placeholder {
  color: #999;
}
.form-control::-webkit-input-placeholder {
  color: #999;
}
.form-control::-ms-expand {
  border: 0;
  background-color: transparent;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background-color: #eeeeee;
  opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
  cursor: not-allowed;
}
textarea.form-control {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  input[type="date"].form-control,
  input[type="time"].form-control,
  input[type="datetime-local"].form-control,
  input[type="month"].form-control {
    line-height: 32px;
  }
  input[type="date"].input-sm,
  input[type="time"].input-sm,
  input[type="datetime-local"].input-sm,
  input[type="month"].input-sm,
  .input-group-sm input[type="date"],
  .input-group-sm input[type="time"],
  .input-group-sm input[type="datetime-local"],
  .input-group-sm input[type="month"] {
    line-height: 30px;
  }
  input[type="date"].input-lg,
  input[type="time"].input-lg,
  input[type="datetime-local"].input-lg,
  input[type="month"].input-lg,
  .input-group-lg input[type="date"],
  .input-group-lg input[type="time"],
  .input-group-lg input[type="datetime-local"],
  .input-group-lg input[type="month"] {
    line-height: 45px;
  }
}
.form-group {
  margin-bottom: 15px;
}
.radio,
.checkbox {
  position: relative;
  display: block;
  margin-top: 10px;
  margin-bottom: 10px;
}
.radio label,
.checkbox label {
  min-height: 18px;
  padding-left: 20px;
  margin-bottom: 0;
  font-weight: normal;
  cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
  position: absolute;
  margin-left: -20px;
  margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
  position: relative;
  display: inline-block;
  padding-left: 20px;
  margin-bottom: 0;
  vertical-align: middle;
  font-weight: normal;
  cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-top: 0;
  margin-left: 10px;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
  cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
  cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
  cursor: not-allowed;
}
.form-control-static {
  padding-top: 7px;
  padding-bottom: 7px;
  margin-bottom: 0;
  min-height: 31px;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
  padding-left: 0;
  padding-right: 0;
}
.input-sm {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-sm {
  height: 30px;
  line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
  height: auto;
}
.form-group-sm .form-control {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.form-group-sm select.form-control {
  height: 30px;
  line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
  height: auto;
}
.form-group-sm .form-control-static {
  height: 30px;
  min-height: 30px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.input-lg {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-lg {
  height: 45px;
  line-height: 45px;
}
textarea.input-lg,
select[multiple].input-lg {
  height: auto;
}
.form-group-lg .form-control {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.form-group-lg select.form-control {
  height: 45px;
  line-height: 45px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
  height: auto;
}
.form-group-lg .form-control-static {
  height: 45px;
  min-height: 35px;
  padding: 11px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.has-feedback {
  position: relative;
}
.has-feedback .form-control {
  padding-right: 40px;
}
.form-control-feedback {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: block;
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
  width: 45px;
  height: 45px;
  line-height: 45px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
  color: #3c763d;
}
.has-success .form-control {
  border-color: #3c763d;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
  border-color: #2b542c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
  color: #3c763d;
  border-color: #3c763d;
  background-color: #dff0d8;
}
.has-success .form-control-feedback {
  color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
  color: #8a6d3b;
}
.has-warning .form-control {
  border-color: #8a6d3b;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
  border-color: #66512c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
  color: #8a6d3b;
  border-color: #8a6d3b;
  background-color: #fcf8e3;
}
.has-warning .form-control-feedback {
  color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
  color: #a94442;
}
.has-error .form-control {
  border-color: #a94442;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
  border-color: #843534;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
  color: #a94442;
  border-color: #a94442;
  background-color: #f2dede;
}
.has-error .form-control-feedback {
  color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
  top: 23px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
  top: 0;
}
.help-block {
  display: block;
  margin-top: 5px;
  margin-bottom: 10px;
  color: #404040;
}
@media (min-width: 768px) {
  .form-inline .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-static {
    display: inline-block;
  }
  .form-inline .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .form-inline .input-group .input-group-addon,
  .form-inline .input-group .input-group-btn,
  .form-inline .input-group .form-control {
    width: auto;
  }
  .form-inline .input-group > .form-control {
    width: 100%;
  }
  .form-inline .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio,
  .form-inline .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio label,
  .form-inline .checkbox label {
    padding-left: 0;
  }
  .form-inline .radio input[type="radio"],
  .form-inline .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .form-inline .has-feedback .form-control-feedback {
    top: 0;
  }
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 7px;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
  min-height: 25px;
}
.form-horizontal .form-group {
  margin-left: 0px;
  margin-right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .control-label {
    text-align: right;
    margin-bottom: 0;
    padding-top: 7px;
  }
}
.form-horizontal .has-feedback .form-control-feedback {
  right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .form-group-lg .control-label {
    padding-top: 11px;
    font-size: 17px;
  }
}
@media (min-width: 768px) {
  .form-horizontal .form-group-sm .control-label {
    padding-top: 6px;
    font-size: 12px;
  }
}
.btn {
  display: inline-block;
  margin-bottom: 0;
  font-weight: normal;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  border-radius: 2px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
  color: #333;
  text-decoration: none;
}
.btn:active,
.btn.active {
  outline: 0;
  background-image: none;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
  cursor: not-allowed;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
  box-shadow: none;
}
a.btn.disabled,
fieldset[disabled] a.btn {
  pointer-events: none;
}
.btn-default {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.btn-default:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  background-image: none;
}
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus {
  background-color: #fff;
  border-color: #ccc;
}
.btn-default .badge {
  color: #fff;
  background-color: #333;
}
.btn-primary {
  color: #fff;
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #286090;
  border-color: #122b40;
}
.btn-primary:hover {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
  color: #fff;
  background-color: #204d74;
  border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary .badge {
  color: #337ab7;
  background-color: #fff;
}
.btn-success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.btn-success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  background-image: none;
}
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.btn-info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.btn-info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  background-image: none;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.btn-warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.btn-warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  background-image: none;
}
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.btn-danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger:focus,
.btn-danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.btn-danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  background-image: none;
}
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger .badge {
  color: #d9534f;
  background-color: #fff;
}
.btn-link {
  color: #337ab7;
  font-weight: normal;
  border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
  background-color: transparent;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
  color: #23527c;
  text-decoration: underline;
  background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
  color: #777777;
  text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.btn-sm,
.btn-group-sm > .btn {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-xs,
.btn-group-xs > .btn {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-block {
  display: block;
  width: 100%;
}
.btn-block + .btn-block {
  margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
  width: 100%;
}
.fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear;
}
.fade.in {
  opacity: 1;
}
.collapse {
  display: none;
}
.collapse.in {
  display: block;
}
tr.collapse.in {
  display: table-row;
}
tbody.collapse.in {
  display: table-row-group;
}
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition-property: height, visibility;
  transition-property: height, visibility;
  -webkit-transition-duration: 0.35s;
  transition-duration: 0.35s;
  -webkit-transition-timing-function: ease;
  transition-timing-function: ease;
}
.caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px dashed;
  border-top: 4px solid \9;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}
.dropup,
.dropdown {
  position: relative;
}
.dropdown-toggle:focus {
  outline: 0;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  list-style: none;
  font-size: 13px;
  text-align: left;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 2px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  background-clip: padding-box;
}
.dropdown-menu.pull-right {
  right: 0;
  left: auto;
}
.dropdown-menu .divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.dropdown-menu > li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  color: #333333;
  white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  text-decoration: none;
  color: #262626;
  background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: #fff;
  text-decoration: none;
  outline: 0;
  background-color: #337ab7;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  background-color: transparent;
  background-image: none;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  cursor: not-allowed;
}
.open > .dropdown-menu {
  display: block;
}
.open > a {
  outline: 0;
}
.dropdown-menu-right {
  left: auto;
  right: 0;
}
.dropdown-menu-left {
  left: 0;
  right: auto;
}
.dropdown-header {
  display: block;
  padding: 3px 20px;
  font-size: 12px;
  line-height: 1.42857143;
  color: #777777;
  white-space: nowrap;
}
.dropdown-backdrop {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index: 990;
}
.pull-right > .dropdown-menu {
  right: 0;
  left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px dashed;
  border-bottom: 4px solid \9;
  content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 2px;
}
@media (min-width: 541px) {
  .navbar-right .dropdown-menu {
    left: auto;
    right: 0;
  }
  .navbar-right .dropdown-menu-left {
    left: 0;
    right: auto;
  }
}
.btn-group,
.btn-group-vertical {
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
  position: relative;
  float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
  z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
  margin-left: -1px;
}
.btn-toolbar {
  margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
  float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
  margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  border-radius: 0;
}
.btn-group > .btn:first-child {
  margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group > .btn-group {
  float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
  outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
  padding-left: 8px;
  padding-right: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
  padding-left: 12px;
  padding-right: 12px;
}
.btn-group.open .dropdown-toggle {
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-group.open .dropdown-toggle.btn-link {
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn .caret {
  margin-left: 0;
}
.btn-lg .caret {
  border-width: 5px 5px 0;
  border-bottom-width: 0;
}
.dropup .btn-lg .caret {
  border-width: 0 5px 5px;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
}
.btn-group-vertical > .btn-group > .btn {
  float: none;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
  margin-top: -1px;
  margin-left: 0;
}
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.btn-group-justified {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
  float: none;
  display: table-cell;
  width: 1%;
}
.btn-group-justified > .btn-group .btn {
  width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
  left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}
.input-group {
  position: relative;
  display: table;
  border-collapse: separate;
}
.input-group[class*="col-"] {
  float: none;
  padding-left: 0;
  padding-right: 0;
}
.input-group .form-control {
  position: relative;
  z-index: 2;
  float: left;
  width: 100%;
  margin-bottom: 0;
}
.input-group .form-control:focus {
  z-index: 3;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
  height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
  height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
  display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.input-group-addon,
.input-group-btn {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}
.input-group-addon {
  padding: 6px 12px;
  font-size: 13px;
  font-weight: normal;
  line-height: 1;
  color: #555555;
  text-align: center;
  background-color: #eeeeee;
  border: 1px solid #ccc;
  border-radius: 2px;
}
.input-group-addon.input-sm {
  padding: 5px 10px;
  font-size: 12px;
  border-radius: 1px;
}
.input-group-addon.input-lg {
  padding: 10px 16px;
  font-size: 17px;
  border-radius: 3px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
  margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.input-group-addon:first-child {
  border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.input-group-addon:last-child {
  border-left: 0;
}
.input-group-btn {
  position: relative;
  font-size: 0;
  white-space: nowrap;
}
.input-group-btn > .btn {
  position: relative;
}
.input-group-btn > .btn + .btn {
  margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
  z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
  margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
  z-index: 2;
  margin-left: -1px;
}
.nav {
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
}
.nav > li {
  position: relative;
  display: block;
}
.nav > li > a {
  position: relative;
  display: block;
  padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.nav > li.disabled > a {
  color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
  color: #777777;
  text-decoration: none;
  background-color: transparent;
  cursor: not-allowed;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
  background-color: #eeeeee;
  border-color: #337ab7;
}
.nav .nav-divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.nav > li > a > img {
  max-width: none;
}
.nav-tabs {
  border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
  float: left;
  margin-bottom: -1px;
}
.nav-tabs > li > a {
  margin-right: 2px;
  line-height: 1.42857143;
  border: 1px solid transparent;
  border-radius: 2px 2px 0 0;
}
.nav-tabs > li > a:hover {
  border-color: #eeeeee #eeeeee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: #555555;
  background-color: #fff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
  cursor: default;
}
.nav-tabs.nav-justified {
  width: 100%;
  border-bottom: 0;
}
.nav-tabs.nav-justified > li {
  float: none;
}
.nav-tabs.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-tabs.nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs.nav-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs.nav-justified > .active > a,
  .nav-tabs.nav-justified > .active > a:hover,
  .nav-tabs.nav-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.nav-pills > li {
  float: left;
}
.nav-pills > li > a {
  border-radius: 2px;
}
.nav-pills > li + li {
  margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
  color: #fff;
  background-color: #337ab7;
}
.nav-stacked > li {
  float: none;
}
.nav-stacked > li + li {
  margin-top: 2px;
  margin-left: 0;
}
.nav-justified {
  width: 100%;
}
.nav-justified > li {
  float: none;
}
.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs-justified {
  border-bottom: 0;
}
.nav-tabs-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs-justified > .active > a,
  .nav-tabs-justified > .active > a:hover,
  .nav-tabs-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}
.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar {
  position: relative;
  min-height: 30px;
  margin-bottom: 18px;
  border: 1px solid transparent;
}
@media (min-width: 541px) {
  .navbar {
    border-radius: 2px;
  }
}
@media (min-width: 541px) {
  .navbar-header {
    float: left;
  }
}
.navbar-collapse {
  overflow-x: visible;
  padding-right: 0px;
  padding-left: 0px;
  border-top: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  -webkit-overflow-scrolling: touch;
}
.navbar-collapse.in {
  overflow-y: auto;
}
@media (min-width: 541px) {
  .navbar-collapse {
    width: auto;
    border-top: 0;
    box-shadow: none;
  }
  .navbar-collapse.collapse {
    display: block !important;
    height: auto !important;
    padding-bottom: 0;
    overflow: visible !important;
  }
  .navbar-collapse.in {
    overflow-y: visible;
  }
  .navbar-fixed-top .navbar-collapse,
  .navbar-static-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    padding-left: 0;
    padding-right: 0;
  }
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
  max-height: 340px;
}
@media (max-device-width: 540px) and (orientation: landscape) {
  .navbar-fixed-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    max-height: 200px;
  }
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
  margin-right: 0px;
  margin-left: 0px;
}
@media (min-width: 541px) {
  .container > .navbar-header,
  .container-fluid > .navbar-header,
  .container > .navbar-collapse,
  .container-fluid > .navbar-collapse {
    margin-right: 0;
    margin-left: 0;
  }
}
.navbar-static-top {
  z-index: 1000;
  border-width: 0 0 1px;
}
@media (min-width: 541px) {
  .navbar-static-top {
    border-radius: 0;
  }
}
.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1030;
}
@media (min-width: 541px) {
  .navbar-fixed-top,
  .navbar-fixed-bottom {
    border-radius: 0;
  }
}
.navbar-fixed-top {
  top: 0;
  border-width: 0 0 1px;
}
.navbar-fixed-bottom {
  bottom: 0;
  margin-bottom: 0;
  border-width: 1px 0 0;
}
.navbar-brand {
  float: left;
  padding: 6px 0px;
  font-size: 17px;
  line-height: 18px;
  height: 30px;
}
.navbar-brand:hover,
.navbar-brand:focus {
  text-decoration: none;
}
.navbar-brand > img {
  display: block;
}
@media (min-width: 541px) {
  .navbar > .container .navbar-brand,
  .navbar > .container-fluid .navbar-brand {
    margin-left: 0px;
  }
}
.navbar-toggle {
  position: relative;
  float: right;
  margin-right: 0px;
  padding: 9px 10px;
  margin-top: -2px;
  margin-bottom: -2px;
  background-color: transparent;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 2px;
}
.navbar-toggle:focus {
  outline: 0;
}
.navbar-toggle .icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
  margin-top: 4px;
}
@media (min-width: 541px) {
  .navbar-toggle {
    display: none;
  }
}
.navbar-nav {
  margin: 3px 0px;
}
.navbar-nav > li > a {
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 18px;
}
@media (max-width: 540px) {
  .navbar-nav .open .dropdown-menu {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    box-shadow: none;
  }
  .navbar-nav .open .dropdown-menu > li > a,
  .navbar-nav .open .dropdown-menu .dropdown-header {
    padding: 5px 15px 5px 25px;
  }
  .navbar-nav .open .dropdown-menu > li > a {
    line-height: 18px;
  }
  .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-nav .open .dropdown-menu > li > a:focus {
    background-image: none;
  }
}
@media (min-width: 541px) {
  .navbar-nav {
    float: left;
    margin: 0;
  }
  .navbar-nav > li {
    float: left;
  }
  .navbar-nav > li > a {
    padding-top: 6px;
    padding-bottom: 6px;
  }
}
.navbar-form {
  margin-left: 0px;
  margin-right: 0px;
  padding: 10px 0px;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  margin-top: -1px;
  margin-bottom: -1px;
}
@media (min-width: 768px) {
  .navbar-form .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .navbar-form .form-control-static {
    display: inline-block;
  }
  .navbar-form .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .navbar-form .input-group .input-group-addon,
  .navbar-form .input-group .input-group-btn,
  .navbar-form .input-group .form-control {
    width: auto;
  }
  .navbar-form .input-group > .form-control {
    width: 100%;
  }
  .navbar-form .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio,
  .navbar-form .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio label,
  .navbar-form .checkbox label {
    padding-left: 0;
  }
  .navbar-form .radio input[type="radio"],
  .navbar-form .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .navbar-form .has-feedback .form-control-feedback {
    top: 0;
  }
}
@media (max-width: 540px) {
  .navbar-form .form-group {
    margin-bottom: 5px;
  }
  .navbar-form .form-group:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 541px) {
  .navbar-form {
    width: auto;
    border: 0;
    margin-left: 0;
    margin-right: 0;
    padding-top: 0;
    padding-bottom: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
  }
}
.navbar-nav > li > .dropdown-menu {
  margin-top: 0;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  margin-bottom: 0;
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.navbar-btn {
  margin-top: -1px;
  margin-bottom: -1px;
}
.navbar-btn.btn-sm {
  margin-top: 0px;
  margin-bottom: 0px;
}
.navbar-btn.btn-xs {
  margin-top: 4px;
  margin-bottom: 4px;
}
.navbar-text {
  margin-top: 6px;
  margin-bottom: 6px;
}
@media (min-width: 541px) {
  .navbar-text {
    float: left;
    margin-left: 0px;
    margin-right: 0px;
  }
}
@media (min-width: 541px) {
  .navbar-left {
    float: left !important;
    float: left;
  }
  .navbar-right {
    float: right !important;
    float: right;
    margin-right: 0px;
  }
  .navbar-right ~ .navbar-right {
    margin-right: 0;
  }
}
.navbar-default {
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
  color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
  color: #5e5e5e;
  background-color: transparent;
}
.navbar-default .navbar-text {
  color: #777;
}
.navbar-default .navbar-nav > li > a {
  color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: #333;
  background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  color: #555;
  background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
  color: #ccc;
  background-color: transparent;
}
.navbar-default .navbar-toggle {
  border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
  background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
  background-color: #e7e7e7;
  color: #555;
}
@media (max-width: 540px) {
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
    color: #777;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #333;
    background-color: transparent;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #555;
    background-color: #e7e7e7;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #ccc;
    background-color: transparent;
  }
}
.navbar-default .navbar-link {
  color: #777;
}
.navbar-default .navbar-link:hover {
  color: #333;
}
.navbar-default .btn-link {
  color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
  color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
  color: #ccc;
}
.navbar-inverse {
  background-color: #222;
  border-color: #080808;
}
.navbar-inverse .navbar-brand {
  color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-text {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  color: #fff;
  background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
  color: #444;
  background-color: transparent;
}
.navbar-inverse .navbar-toggle {
  border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
  background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
  background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
  border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  background-color: #080808;
  color: #fff;
}
@media (max-width: 540px) {
  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
    border-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
    color: #9d9d9d;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #fff;
    background-color: transparent;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #fff;
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #444;
    background-color: transparent;
  }
}
.navbar-inverse .navbar-link {
  color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
  color: #fff;
}
.navbar-inverse .btn-link {
  color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
  color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
  color: #444;
}
.breadcrumb {
  padding: 8px 15px;
  margin-bottom: 18px;
  list-style: none;
  background-color: #f5f5f5;
  border-radius: 2px;
}
.breadcrumb > li {
  display: inline-block;
}
.breadcrumb > li + li:before {
  content: "/\00a0";
  padding: 0 5px;
  color: #5e5e5e;
}
.breadcrumb > .active {
  color: #777777;
}
.pagination {
  display: inline-block;
  padding-left: 0;
  margin: 18px 0;
  border-radius: 2px;
}
.pagination > li {
  display: inline;
}
.pagination > li > a,
.pagination > li > span {
  position: relative;
  float: left;
  padding: 6px 12px;
  line-height: 1.42857143;
  text-decoration: none;
  color: #337ab7;
  background-color: #fff;
  border: 1px solid #ddd;
  margin-left: -1px;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
  margin-left: 0;
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
  border-bottom-right-radius: 2px;
  border-top-right-radius: 2px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
  z-index: 2;
  color: #23527c;
  background-color: #eeeeee;
  border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  z-index: 3;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
  cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
  color: #777777;
  background-color: #fff;
  border-color: #ddd;
  cursor: not-allowed;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
  border-bottom-left-radius: 1px;
  border-top-left-radius: 1px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
  border-bottom-right-radius: 1px;
  border-top-right-radius: 1px;
}
.pager {
  padding-left: 0;
  margin: 18px 0;
  list-style: none;
  text-align: center;
}
.pager li {
  display: inline;
}
.pager li > a,
.pager li > span {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.pager .next > a,
.pager .next > span {
  float: right;
}
.pager .previous > a,
.pager .previous > span {
  float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
  color: #777777;
  background-color: #fff;
  cursor: not-allowed;
}
.label {
  display: inline;
  padding: .2em .6em .3em;
  font-size: 75%;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25em;
}
a.label:hover,
a.label:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.label:empty {
  display: none;
}
.btn .label {
  position: relative;
  top: -1px;
}
.label-default {
  background-color: #777777;
}
.label-default[href]:hover,
.label-default[href]:focus {
  background-color: #5e5e5e;
}
.label-primary {
  background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
  background-color: #286090;
}
.label-success {
  background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
  background-color: #449d44;
}
.label-info {
  background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
  background-color: #31b0d5;
}
.label-warning {
  background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
  background-color: #ec971f;
}
.label-danger {
  background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
  background-color: #c9302c;
}
.badge {
  display: inline-block;
  min-width: 10px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  color: #fff;
  line-height: 1;
  vertical-align: middle;
  white-space: nowrap;
  text-align: center;
  background-color: #777777;
  border-radius: 10px;
}
.badge:empty {
  display: none;
}
.btn .badge {
  position: relative;
  top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
  top: 0;
  padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
  color: #337ab7;
  background-color: #fff;
}
.list-group-item > .badge {
  float: right;
}
.list-group-item > .badge + .badge {
  margin-right: 5px;
}
.nav-pills > li > a > .badge {
  margin-left: 3px;
}
.jumbotron {
  padding-top: 30px;
  padding-bottom: 30px;
  margin-bottom: 30px;
  color: inherit;
  background-color: #eeeeee;
}
.jumbotron h1,
.jumbotron .h1 {
  color: inherit;
}
.jumbotron p {
  margin-bottom: 15px;
  font-size: 20px;
  font-weight: 200;
}
.jumbotron > hr {
  border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
  border-radius: 3px;
  padding-left: 0px;
  padding-right: 0px;
}
.jumbotron .container {
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .jumbotron {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .container .jumbotron,
  .container-fluid .jumbotron {
    padding-left: 60px;
    padding-right: 60px;
  }
  .jumbotron h1,
  .jumbotron .h1 {
    font-size: 59px;
  }
}
.thumbnail {
  display: block;
  padding: 4px;
  margin-bottom: 18px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: border 0.2s ease-in-out;
  -o-transition: border 0.2s ease-in-out;
  transition: border 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
  margin-left: auto;
  margin-right: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
  border-color: #337ab7;
}
.thumbnail .caption {
  padding: 9px;
  color: #000;
}
.alert {
  padding: 15px;
  margin-bottom: 18px;
  border: 1px solid transparent;
  border-radius: 2px;
}
.alert h4 {
  margin-top: 0;
  color: inherit;
}
.alert .alert-link {
  font-weight: bold;
}
.alert > p,
.alert > ul {
  margin-bottom: 0;
}
.alert > p + p {
  margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
  padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
  position: relative;
  top: -2px;
  right: -21px;
  color: inherit;
}
.alert-success {
  background-color: #dff0d8;
  border-color: #d6e9c6;
  color: #3c763d;
}
.alert-success hr {
  border-top-color: #c9e2b3;
}
.alert-success .alert-link {
  color: #2b542c;
}
.alert-info {
  background-color: #d9edf7;
  border-color: #bce8f1;
  color: #31708f;
}
.alert-info hr {
  border-top-color: #a6e1ec;
}
.alert-info .alert-link {
  color: #245269;
}
.alert-warning {
  background-color: #fcf8e3;
  border-color: #faebcc;
  color: #8a6d3b;
}
.alert-warning hr {
  border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
  color: #66512c;
}
.alert-danger {
  background-color: #f2dede;
  border-color: #ebccd1;
  color: #a94442;
}
.alert-danger hr {
  border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
  color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
@keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
.progress {
  overflow: hidden;
  height: 18px;
  margin-bottom: 18px;
  background-color: #f5f5f5;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
  float: left;
  width: 0%;
  height: 100%;
  font-size: 12px;
  line-height: 18px;
  color: #fff;
  text-align: center;
  background-color: #337ab7;
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -webkit-transition: width 0.6s ease;
  -o-transition: width 0.6s ease;
  transition: width 0.6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
  -o-animation: progress-bar-stripes 2s linear infinite;
  animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
  background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
  background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
  background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
  background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.media {
  margin-top: 15px;
}
.media:first-child {
  margin-top: 0;
}
.media,
.media-body {
  zoom: 1;
  overflow: hidden;
}
.media-body {
  width: 10000px;
}
.media-object {
  display: block;
}
.media-object.img-thumbnail {
  max-width: none;
}
.media-right,
.media > .pull-right {
  padding-left: 10px;
}
.media-left,
.media > .pull-left {
  padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
  display: table-cell;
  vertical-align: top;
}
.media-middle {
  vertical-align: middle;
}
.media-bottom {
  vertical-align: bottom;
}
.media-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.media-list {
  padding-left: 0;
  list-style: none;
}
.list-group {
  margin-bottom: 20px;
  padding-left: 0;
}
.list-group-item {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
}
.list-group-item:first-child {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
a.list-group-item,
button.list-group-item {
  color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
  color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
  text-decoration: none;
  color: #555;
  background-color: #f5f5f5;
}
button.list-group-item {
  width: 100%;
  text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
  background-color: #eeeeee;
  color: #777777;
  cursor: not-allowed;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
  color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
  color: #777777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  z-index: 2;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
  color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
  color: #c7ddef;
}
.list-group-item-success {
  color: #3c763d;
  background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
  color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
  color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
  color: #3c763d;
  background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
  color: #fff;
  background-color: #3c763d;
  border-color: #3c763d;
}
.list-group-item-info {
  color: #31708f;
  background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
  color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
  color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
  color: #31708f;
  background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
  color: #fff;
  background-color: #31708f;
  border-color: #31708f;
}
.list-group-item-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
  color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
  color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
  color: #8a6d3b;
  background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
  color: #fff;
  background-color: #8a6d3b;
  border-color: #8a6d3b;
}
.list-group-item-danger {
  color: #a94442;
  background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
  color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
  color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
  color: #a94442;
  background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
  color: #fff;
  background-color: #a94442;
  border-color: #a94442;
}
.list-group-item-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.list-group-item-text {
  margin-bottom: 0;
  line-height: 1.3;
}
.panel {
  margin-bottom: 18px;
  background-color: #fff;
  border: 1px solid transparent;
  border-radius: 2px;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}
.panel-body {
  padding: 15px;
}
.panel-heading {
  padding: 10px 15px;
  border-bottom: 1px solid transparent;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel-heading > .dropdown .dropdown-toggle {
  color: inherit;
}
.panel-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 15px;
  color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
  color: inherit;
}
.panel-footer {
  padding: 10px 15px;
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
  margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
  border-width: 1px 0;
  border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
  border-top: 0;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
  border-bottom: 0;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
  border-top-width: 0;
}
.list-group + .panel-footer {
  border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
  margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
  padding-left: 15px;
  padding-right: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
  border-top-left-radius: 1px;
  border-top-right-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
  border-top-right-radius: 1px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
  border-bottom-left-radius: 1px;
  border-bottom-right-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
  border-bottom-right-radius: 1px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
  border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
  border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
  border: 0;
}
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
.panel > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-bordered > thead > tr > td:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
.panel > .table-bordered > tbody > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
.panel > .table-bordered > tfoot > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  border-left: 0;
}
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
.panel > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-bordered > thead > tr > td:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
.panel > .table-bordered > tbody > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
.panel > .table-bordered > tfoot > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  border-right: 0;
}
.panel > .table-bordered > thead > tr:first-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
.panel > .table-bordered > tbody > tr:first-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
.panel > .table-bordered > thead > tr:first-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
.panel > .table-bordered > tbody > tr:first-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
  border-bottom: 0;
}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-bordered > tbody > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
.panel > .table-bordered > tfoot > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
  border-bottom: 0;
}
.panel > .table-responsive {
  border: 0;
  margin-bottom: 0;
}
.panel-group {
  margin-bottom: 18px;
}
.panel-group .panel {
  margin-bottom: 0;
  border-radius: 2px;
}
.panel-group .panel + .panel {
  margin-top: 5px;
}
.panel-group .panel-heading {
  border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
  border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
  border-top: 0;
}
.panel-group .panel-footer + .panel-collapse .panel-body {
  border-bottom: 1px solid #ddd;
}
.panel-default {
  border-color: #ddd;
}
.panel-default > .panel-heading {
  color: #333333;
  background-color: #f5f5f5;
  border-color: #ddd;
}
.panel-default > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ddd;
}
.panel-default > .panel-heading .badge {
  color: #f5f5f5;
  background-color: #333333;
}
.panel-default > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ddd;
}
.panel-primary {
  border-color: #337ab7;
}
.panel-primary > .panel-heading {
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
  color: #337ab7;
  background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #337ab7;
}
.panel-success {
  border-color: #d6e9c6;
}
.panel-success > .panel-heading {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}
.panel-success > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #d6e9c6;
}
.panel-success > .panel-heading .badge {
  color: #dff0d8;
  background-color: #3c763d;
}
.panel-success > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #d6e9c6;
}
.panel-info {
  border-color: #bce8f1;
}
.panel-info > .panel-heading {
  color: #31708f;
  background-color: #d9edf7;
  border-color: #bce8f1;
}
.panel-info > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #bce8f1;
}
.panel-info > .panel-heading .badge {
  color: #d9edf7;
  background-color: #31708f;
}
.panel-info > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #bce8f1;
}
.panel-warning {
  border-color: #faebcc;
}
.panel-warning > .panel-heading {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #faebcc;
}
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #faebcc;
}
.panel-warning > .panel-heading .badge {
  color: #fcf8e3;
  background-color: #8a6d3b;
}
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #faebcc;
}
.panel-danger {
  border-color: #ebccd1;
}
.panel-danger > .panel-heading {
  color: #a94442;
  background-color: #f2dede;
  border-color: #ebccd1;
}
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ebccd1;
}
.panel-danger > .panel-heading .badge {
  color: #f2dede;
  background-color: #a94442;
}
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ebccd1;
}
.embed-responsive {
  position: relative;
  display: block;
  height: 0;
  padding: 0;
  overflow: hidden;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  border: 0;
}
.embed-responsive-16by9 {
  padding-bottom: 56.25%;
}
.embed-responsive-4by3 {
  padding-bottom: 75%;
}
.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.well blockquote {
  border-color: #ddd;
  border-color: rgba(0, 0, 0, 0.15);
}
.well-lg {
  padding: 24px;
  border-radius: 3px;
}
.well-sm {
  padding: 9px;
  border-radius: 1px;
}
.close {
  float: right;
  font-size: 19.5px;
  font-weight: bold;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.2;
  filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.5;
  filter: alpha(opacity=50);
}
button.close {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
}
.modal-open {
  overflow: hidden;
}
.modal {
  display: none;
  overflow: hidden;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  -webkit-overflow-scrolling: touch;
  outline: 0;
}
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, -25%);
  -ms-transform: translate(0, -25%);
  -o-transform: translate(0, -25%);
  transform: translate(0, -25%);
  -webkit-transition: -webkit-transform 0.3s ease-out;
  -moz-transition: -moz-transform 0.3s ease-out;
  -o-transition: -o-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}
.modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}
.modal-content {
  position: relative;
  background-color: #fff;
  border: 1px solid #999;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  background-clip: padding-box;
  outline: 0;
}
.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}
.modal-backdrop.fade {
  opacity: 0;
  filter: alpha(opacity=0);
}
.modal-backdrop.in {
  opacity: 0.5;
  filter: alpha(opacity=50);
}
.modal-header {
  padding: 15px;
  border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
  margin-top: -2px;
}
.modal-title {
  margin: 0;
  line-height: 1.42857143;
}
.modal-body {
  position: relative;
  padding: 15px;
}
.modal-footer {
  padding: 15px;
  text-align: right;
  border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
  margin-left: 5px;
  margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}
.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}
@media (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    margin: 30px auto;
  }
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  }
  .modal-sm {
    width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg {
    width: 900px;
  }
}
.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 12px;
  opacity: 0;
  filter: alpha(opacity=0);
}
.tooltip.in {
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.tooltip.top {
  margin-top: -3px;
  padding: 5px 0;
}
.tooltip.right {
  margin-left: 3px;
  padding: 0 5px;
}
.tooltip.bottom {
  margin-top: 3px;
  padding: 5px 0;
}
.tooltip.left {
  margin-left: -3px;
  padding: 0 5px;
}
.tooltip-inner {
  max-width: 200px;
  padding: 3px 8px;
  color: #fff;
  text-align: center;
  background-color: #000;
  border-radius: 2px;
}
.tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.tooltip.top .tooltip-arrow {
  bottom: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
  bottom: 0;
  right: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
  bottom: 0;
  left: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.right .tooltip-arrow {
  top: 50%;
  left: 0;
  margin-top: -5px;
  border-width: 5px 5px 5px 0;
  border-right-color: #000;
}
.tooltip.left .tooltip-arrow {
  top: 50%;
  right: 0;
  margin-top: -5px;
  border-width: 5px 0 5px 5px;
  border-left-color: #000;
}
.tooltip.bottom .tooltip-arrow {
  top: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-left .tooltip-arrow {
  top: 0;
  right: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
  top: 0;
  left: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1060;
  display: none;
  max-width: 276px;
  padding: 1px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 13px;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
  margin-top: -10px;
}
.popover.right {
  margin-left: 10px;
}
.popover.bottom {
  margin-top: 10px;
}
.popover.left {
  margin-left: -10px;
}
.popover-title {
  margin: 0;
  padding: 8px 14px;
  font-size: 13px;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  border-radius: 2px 2px 0 0;
}
.popover-content {
  padding: 9px 14px;
}
.popover > .arrow,
.popover > .arrow:after {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.popover > .arrow {
  border-width: 11px;
}
.popover > .arrow:after {
  border-width: 10px;
  content: "";
}
.popover.top > .arrow {
  left: 50%;
  margin-left: -11px;
  border-bottom-width: 0;
  border-top-color: #999999;
  border-top-color: rgba(0, 0, 0, 0.25);
  bottom: -11px;
}
.popover.top > .arrow:after {
  content: " ";
  bottom: 1px;
  margin-left: -10px;
  border-bottom-width: 0;
  border-top-color: #fff;
}
.popover.right > .arrow {
  top: 50%;
  left: -11px;
  margin-top: -11px;
  border-left-width: 0;
  border-right-color: #999999;
  border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.right > .arrow:after {
  content: " ";
  left: 1px;
  bottom: -10px;
  border-left-width: 0;
  border-right-color: #fff;
}
.popover.bottom > .arrow {
  left: 50%;
  margin-left: -11px;
  border-top-width: 0;
  border-bottom-color: #999999;
  border-bottom-color: rgba(0, 0, 0, 0.25);
  top: -11px;
}
.popover.bottom > .arrow:after {
  content: " ";
  top: 1px;
  margin-left: -10px;
  border-top-width: 0;
  border-bottom-color: #fff;
}
.popover.left > .arrow {
  top: 50%;
  right: -11px;
  margin-top: -11px;
  border-right-width: 0;
  border-left-color: #999999;
  border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
  content: " ";
  right: 1px;
  border-right-width: 0;
  border-left-color: #fff;
  bottom: -10px;
}
.carousel {
  position: relative;
}
.carousel-inner {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.carousel-inner > .item {
  display: none;
  position: relative;
  -webkit-transition: 0.6s ease-in-out left;
  -o-transition: 0.6s ease-in-out left;
  transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
  .carousel-inner > .item {
    -webkit-transition: -webkit-transform 0.6s ease-in-out;
    -moz-transition: -moz-transform 0.6s ease-in-out;
    -o-transition: -o-transform 0.6s ease-in-out;
    transition: transform 0.6s ease-in-out;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000px;
    -moz-perspective: 1000px;
    perspective: 1000px;
  }
  .carousel-inner > .item.next,
  .carousel-inner > .item.active.right {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.prev,
  .carousel-inner > .item.active.left {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.next.left,
  .carousel-inner > .item.prev.right,
  .carousel-inner > .item.active {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    left: 0;
  }
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
  display: block;
}
.carousel-inner > .active {
  left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
  position: absolute;
  top: 0;
  width: 100%;
}
.carousel-inner > .next {
  left: 100%;
}
.carousel-inner > .prev {
  left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
  left: 0;
}
.carousel-inner > .active.left {
  left: -100%;
}
.carousel-inner > .active.right {
  left: 100%;
}
.carousel-control {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 15%;
  opacity: 0.5;
  filter: alpha(opacity=50);
  font-size: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  background-color: rgba(0, 0, 0, 0);
}
.carousel-control.left {
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
.carousel-control.right {
  left: auto;
  right: 0;
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
.carousel-control:hover,
.carousel-control:focus {
  outline: 0;
  color: #fff;
  text-decoration: none;
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right {
  position: absolute;
  top: 50%;
  margin-top: -10px;
  z-index: 5;
  display: inline-block;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
  left: 50%;
  margin-left: -10px;
}
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
  right: 50%;
  margin-right: -10px;
}
.carousel-control .icon-prev,
.carousel-control .icon-next {
  width: 20px;
  height: 20px;
  line-height: 1;
  font-family: serif;
}
.carousel-control .icon-prev:before {
  content: '\2039';
}
.carousel-control .icon-next:before {
  content: '\203a';
}
.carousel-indicators {
  position: absolute;
  bottom: 10px;
  left: 50%;
  z-index: 15;
  width: 60%;
  margin-left: -30%;
  padding-left: 0;
  list-style: none;
  text-align: center;
}
.carousel-indicators li {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 1px;
  text-indent: -999px;
  border: 1px solid #fff;
  border-radius: 10px;
  cursor: pointer;
  background-color: #000 \9;
  background-color: rgba(0, 0, 0, 0);
}
.carousel-indicators .active {
  margin: 0;
  width: 12px;
  height: 12px;
  background-color: #fff;
}
.carousel-caption {
  position: absolute;
  left: 15%;
  right: 15%;
  bottom: 20px;
  z-index: 10;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
  text-shadow: none;
}
@media screen and (min-width: 768px) {
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-prev,
  .carousel-control .icon-next {
    width: 30px;
    height: 30px;
    margin-top: -10px;
    font-size: 30px;
  }
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .icon-prev {
    margin-left: -10px;
  }
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-next {
    margin-right: -10px;
  }
  .carousel-caption {
    left: 20%;
    right: 20%;
    padding-bottom: 30px;
  }
  .carousel-indicators {
    bottom: 20px;
  }
}
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after,
.item_buttons:before,
.item_buttons:after {
  content: " ";
  display: table;
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after,
.item_buttons:after {
  clear: both;
}
.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.pull-right {
  float: right !important;
}
.pull-left {
  float: left !important;
}
.hide {
  display: none !important;
}
.show {
  display: block !important;
}
.invisible {
  visibility: hidden;
}
.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.hidden {
  display: none !important;
}
.affix {
  position: fixed;
}
@-ms-viewport {
  width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
  display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
  display: none !important;
}
@media (max-width: 767px) {
  .visible-xs {
    display: block !important;
  }
  table.visible-xs {
    display: table !important;
  }
  tr.visible-xs {
    display: table-row !important;
  }
  th.visible-xs,
  td.visible-xs {
    display: table-cell !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-block {
    display: block !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline {
    display: inline !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm {
    display: block !important;
  }
  table.visible-sm {
    display: table !important;
  }
  tr.visible-sm {
    display: table-row !important;
  }
  th.visible-sm,
  td.visible-sm {
    display: table-cell !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-block {
    display: block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline {
    display: inline !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md {
    display: block !important;
  }
  table.visible-md {
    display: table !important;
  }
  tr.visible-md {
    display: table-row !important;
  }
  th.visible-md,
  td.visible-md {
    display: table-cell !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-block {
    display: block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline {
    display: inline !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg {
    display: block !important;
  }
  table.visible-lg {
    display: table !important;
  }
  tr.visible-lg {
    display: table-row !important;
  }
  th.visible-lg,
  td.visible-lg {
    display: table-cell !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-block {
    display: block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline {
    display: inline !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline-block {
    display: inline-block !important;
  }
}
@media (max-width: 767px) {
  .hidden-xs {
    display: none !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .hidden-sm {
    display: none !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-md {
    display: none !important;
  }
}
@media (min-width: 1200px) {
  .hidden-lg {
    display: none !important;
  }
}
.visible-print {
  display: none !important;
}
@media print {
  .visible-print {
    display: block !important;
  }
  table.visible-print {
    display: table !important;
  }
  tr.visible-print {
    display: table-row !important;
  }
  th.visible-print,
  td.visible-print {
    display: table-cell !important;
  }
}
.visible-print-block {
  display: none !important;
}
@media print {
  .visible-print-block {
    display: block !important;
  }
}
.visible-print-inline {
  display: none !important;
}
@media print {
  .visible-print-inline {
    display: inline !important;
  }
}
.visible-print-inline-block {
  display: none !important;
}
@media print {
  .visible-print-inline-block {
    display: inline-block !important;
  }
}
@media print {
  .hidden-print {
    display: none !important;
  }
}
/*!
*
* Font Awesome
*
*/
/*!
 *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */
/* FONT PATH
 * -------------------------- */
@font-face {
  font-family: 'FontAwesome';
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0');
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
  font-size: 1.33333333em;
  line-height: 0.75em;
  vertical-align: -15%;
}
.fa-2x {
  font-size: 2em;
}
.fa-3x {
  font-size: 3em;
}
.fa-4x {
  font-size: 4em;
}
.fa-5x {
  font-size: 5em;
}
.fa-fw {
  width: 1.28571429em;
  text-align: center;
}
.fa-ul {
  padding-left: 0;
  margin-left: 2.14285714em;
  list-style-type: none;
}
.fa-ul > li {
  position: relative;
}
.fa-li {
  position: absolute;
  left: -2.14285714em;
  width: 2.14285714em;
  top: 0.14285714em;
  text-align: center;
}
.fa-li.fa-lg {
  left: -1.85714286em;
}
.fa-border {
  padding: .2em .25em .15em;
  border: solid 0.08em #eee;
  border-radius: .1em;
}
.pull-right {
  float: right;
}
.pull-left {
  float: left;
}
.fa.pull-left {
  margin-right: .3em;
}
.fa.pull-right {
  margin-left: .3em;
}
.fa-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}
@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.fa-rotate-90 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
.fa-rotate-180 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.fa-rotate-270 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg);
}
.fa-flip-horizontal {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
  -webkit-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  transform: scale(-1, 1);
}
.fa-flip-vertical {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
  -webkit-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
  filter: none;
}
.fa-stack {
  position: relative;
  display: inline-block;
  width: 2em;
  height: 2em;
  line-height: 2em;
  vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}
.fa-stack-1x {
  line-height: inherit;
}
.fa-stack-2x {
  font-size: 2em;
}
.fa-inverse {
  color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */
.fa-glass:before {
  content: "\f000";
}
.fa-music:before {
  content: "\f001";
}
.fa-search:before {
  content: "\f002";
}
.fa-envelope-o:before {
  content: "\f003";
}
.fa-heart:before {
  content: "\f004";
}
.fa-star:before {
  content: "\f005";
}
.fa-star-o:before {
  content: "\f006";
}
.fa-user:before {
  content: "\f007";
}
.fa-film:before {
  content: "\f008";
}
.fa-th-large:before {
  content: "\f009";
}
.fa-th:before {
  content: "\f00a";
}
.fa-th-list:before {
  content: "\f00b";
}
.fa-check:before {
  content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
  content: "\f00d";
}
.fa-search-plus:before {
  content: "\f00e";
}
.fa-search-minus:before {
  content: "\f010";
}
.fa-power-off:before {
  content: "\f011";
}
.fa-signal:before {
  content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
  content: "\f013";
}
.fa-trash-o:before {
  content: "\f014";
}
.fa-home:before {
  content: "\f015";
}
.fa-file-o:before {
  content: "\f016";
}
.fa-clock-o:before {
  content: "\f017";
}
.fa-road:before {
  content: "\f018";
}
.fa-download:before {
  content: "\f019";
}
.fa-arrow-circle-o-down:before {
  content: "\f01a";
}
.fa-arrow-circle-o-up:before {
  content: "\f01b";
}
.fa-inbox:before {
  content: "\f01c";
}
.fa-play-circle-o:before {
  content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
  content: "\f01e";
}
.fa-refresh:before {
  content: "\f021";
}
.fa-list-alt:before {
  content: "\f022";
}
.fa-lock:before {
  content: "\f023";
}
.fa-flag:before {
  content: "\f024";
}
.fa-headphones:before {
  content: "\f025";
}
.fa-volume-off:before {
  content: "\f026";
}
.fa-volume-down:before {
  content: "\f027";
}
.fa-volume-up:before {
  content: "\f028";
}
.fa-qrcode:before {
  content: "\f029";
}
.fa-barcode:before {
  content: "\f02a";
}
.fa-tag:before {
  content: "\f02b";
}
.fa-tags:before {
  content: "\f02c";
}
.fa-book:before {
  content: "\f02d";
}
.fa-bookmark:before {
  content: "\f02e";
}
.fa-print:before {
  content: "\f02f";
}
.fa-camera:before {
  content: "\f030";
}
.fa-font:before {
  content: "\f031";
}
.fa-bold:before {
  content: "\f032";
}
.fa-italic:before {
  content: "\f033";
}
.fa-text-height:before {
  content: "\f034";
}
.fa-text-width:before {
  content: "\f035";
}
.fa-align-left:before {
  content: "\f036";
}
.fa-align-center:before {
  content: "\f037";
}
.fa-align-right:before {
  content: "\f038";
}
.fa-align-justify:before {
  content: "\f039";
}
.fa-list:before {
  content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
  content: "\f03b";
}
.fa-indent:before {
  content: "\f03c";
}
.fa-video-camera:before {
  content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
  content: "\f03e";
}
.fa-pencil:before {
  content: "\f040";
}
.fa-map-marker:before {
  content: "\f041";
}
.fa-adjust:before {
  content: "\f042";
}
.fa-tint:before {
  content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
  content: "\f044";
}
.fa-share-square-o:before {
  content: "\f045";
}
.fa-check-square-o:before {
  content: "\f046";
}
.fa-arrows:before {
  content: "\f047";
}
.fa-step-backward:before {
  content: "\f048";
}
.fa-fast-backward:before {
  content: "\f049";
}
.fa-backward:before {
  content: "\f04a";
}
.fa-play:before {
  content: "\f04b";
}
.fa-pause:before {
  content: "\f04c";
}
.fa-stop:before {
  content: "\f04d";
}
.fa-forward:before {
  content: "\f04e";
}
.fa-fast-forward:before {
  content: "\f050";
}
.fa-step-forward:before {
  content: "\f051";
}
.fa-eject:before {
  content: "\f052";
}
.fa-chevron-left:before {
  content: "\f053";
}
.fa-chevron-right:before {
  content: "\f054";
}
.fa-plus-circle:before {
  content: "\f055";
}
.fa-minus-circle:before {
  content: "\f056";
}
.fa-times-circle:before {
  content: "\f057";
}
.fa-check-circle:before {
  content: "\f058";
}
.fa-question-circle:before {
  content: "\f059";
}
.fa-info-circle:before {
  content: "\f05a";
}
.fa-crosshairs:before {
  content: "\f05b";
}
.fa-times-circle-o:before {
  content: "\f05c";
}
.fa-check-circle-o:before {
  content: "\f05d";
}
.fa-ban:before {
  content: "\f05e";
}
.fa-arrow-left:before {
  content: "\f060";
}
.fa-arrow-right:before {
  content: "\f061";
}
.fa-arrow-up:before {
  content: "\f062";
}
.fa-arrow-down:before {
  content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
  content: "\f064";
}
.fa-expand:before {
  content: "\f065";
}
.fa-compress:before {
  content: "\f066";
}
.fa-plus:before {
  content: "\f067";
}
.fa-minus:before {
  content: "\f068";
}
.fa-asterisk:before {
  content: "\f069";
}
.fa-exclamation-circle:before {
  content: "\f06a";
}
.fa-gift:before {
  content: "\f06b";
}
.fa-leaf:before {
  content: "\f06c";
}
.fa-fire:before {
  content: "\f06d";
}
.fa-eye:before {
  content: "\f06e";
}
.fa-eye-slash:before {
  content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
  content: "\f071";
}
.fa-plane:before {
  content: "\f072";
}
.fa-calendar:before {
  content: "\f073";
}
.fa-random:before {
  content: "\f074";
}
.fa-comment:before {
  content: "\f075";
}
.fa-magnet:before {
  content: "\f076";
}
.fa-chevron-up:before {
  content: "\f077";
}
.fa-chevron-down:before {
  content: "\f078";
}
.fa-retweet:before {
  content: "\f079";
}
.fa-shopping-cart:before {
  content: "\f07a";
}
.fa-folder:before {
  content: "\f07b";
}
.fa-folder-open:before {
  content: "\f07c";
}
.fa-arrows-v:before {
  content: "\f07d";
}
.fa-arrows-h:before {
  content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
  content: "\f080";
}
.fa-twitter-square:before {
  content: "\f081";
}
.fa-facebook-square:before {
  content: "\f082";
}
.fa-camera-retro:before {
  content: "\f083";
}
.fa-key:before {
  content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
  content: "\f085";
}
.fa-comments:before {
  content: "\f086";
}
.fa-thumbs-o-up:before {
  content: "\f087";
}
.fa-thumbs-o-down:before {
  content: "\f088";
}
.fa-star-half:before {
  content: "\f089";
}
.fa-heart-o:before {
  content: "\f08a";
}
.fa-sign-out:before {
  content: "\f08b";
}
.fa-linkedin-square:before {
  content: "\f08c";
}
.fa-thumb-tack:before {
  content: "\f08d";
}
.fa-external-link:before {
  content: "\f08e";
}
.fa-sign-in:before {
  content: "\f090";
}
.fa-trophy:before {
  content: "\f091";
}
.fa-github-square:before {
  content: "\f092";
}
.fa-upload:before {
  content: "\f093";
}
.fa-lemon-o:before {
  content: "\f094";
}
.fa-phone:before {
  content: "\f095";
}
.fa-square-o:before {
  content: "\f096";
}
.fa-bookmark-o:before {
  content: "\f097";
}
.fa-phone-square:before {
  content: "\f098";
}
.fa-twitter:before {
  content: "\f099";
}
.fa-facebook:before {
  content: "\f09a";
}
.fa-github:before {
  content: "\f09b";
}
.fa-unlock:before {
  content: "\f09c";
}
.fa-credit-card:before {
  content: "\f09d";
}
.fa-rss:before {
  content: "\f09e";
}
.fa-hdd-o:before {
  content: "\f0a0";
}
.fa-bullhorn:before {
  content: "\f0a1";
}
.fa-bell:before {
  content: "\f0f3";
}
.fa-certificate:before {
  content: "\f0a3";
}
.fa-hand-o-right:before {
  content: "\f0a4";
}
.fa-hand-o-left:before {
  content: "\f0a5";
}
.fa-hand-o-up:before {
  content: "\f0a6";
}
.fa-hand-o-down:before {
  content: "\f0a7";
}
.fa-arrow-circle-left:before {
  content: "\f0a8";
}
.fa-arrow-circle-right:before {
  content: "\f0a9";
}
.fa-arrow-circle-up:before {
  content: "\f0aa";
}
.fa-arrow-circle-down:before {
  content: "\f0ab";
}
.fa-globe:before {
  content: "\f0ac";
}
.fa-wrench:before {
  content: "\f0ad";
}
.fa-tasks:before {
  content: "\f0ae";
}
.fa-filter:before {
  content: "\f0b0";
}
.fa-briefcase:before {
  content: "\f0b1";
}
.fa-arrows-alt:before {
  content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
  content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
  content: "\f0c1";
}
.fa-cloud:before {
  content: "\f0c2";
}
.fa-flask:before {
  content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
  content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
  content: "\f0c5";
}
.fa-paperclip:before {
  content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
  content: "\f0c7";
}
.fa-square:before {
  content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
  content: "\f0c9";
}
.fa-list-ul:before {
  content: "\f0ca";
}
.fa-list-ol:before {
  content: "\f0cb";
}
.fa-strikethrough:before {
  content: "\f0cc";
}
.fa-underline:before {
  content: "\f0cd";
}
.fa-table:before {
  content: "\f0ce";
}
.fa-magic:before {
  content: "\f0d0";
}
.fa-truck:before {
  content: "\f0d1";
}
.fa-pinterest:before {
  content: "\f0d2";
}
.fa-pinterest-square:before {
  content: "\f0d3";
}
.fa-google-plus-square:before {
  content: "\f0d4";
}
.fa-google-plus:before {
  content: "\f0d5";
}
.fa-money:before {
  content: "\f0d6";
}
.fa-caret-down:before {
  content: "\f0d7";
}
.fa-caret-up:before {
  content: "\f0d8";
}
.fa-caret-left:before {
  content: "\f0d9";
}
.fa-caret-right:before {
  content: "\f0da";
}
.fa-columns:before {
  content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
  content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
  content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
  content: "\f0de";
}
.fa-envelope:before {
  content: "\f0e0";
}
.fa-linkedin:before {
  content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
  content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
  content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
  content: "\f0e4";
}
.fa-comment-o:before {
  content: "\f0e5";
}
.fa-comments-o:before {
  content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
  content: "\f0e7";
}
.fa-sitemap:before {
  content: "\f0e8";
}
.fa-umbrella:before {
  content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
  content: "\f0ea";
}
.fa-lightbulb-o:before {
  content: "\f0eb";
}
.fa-exchange:before {
  content: "\f0ec";
}
.fa-cloud-download:before {
  content: "\f0ed";
}
.fa-cloud-upload:before {
  content: "\f0ee";
}
.fa-user-md:before {
  content: "\f0f0";
}
.fa-stethoscope:before {
  content: "\f0f1";
}
.fa-suitcase:before {
  content: "\f0f2";
}
.fa-bell-o:before {
  content: "\f0a2";
}
.fa-coffee:before {
  content: "\f0f4";
}
.fa-cutlery:before {
  content: "\f0f5";
}
.fa-file-text-o:before {
  content: "\f0f6";
}
.fa-building-o:before {
  content: "\f0f7";
}
.fa-hospital-o:before {
  content: "\f0f8";
}
.fa-ambulance:before {
  content: "\f0f9";
}
.fa-medkit:before {
  content: "\f0fa";
}
.fa-fighter-jet:before {
  content: "\f0fb";
}
.fa-beer:before {
  content: "\f0fc";
}
.fa-h-square:before {
  content: "\f0fd";
}
.fa-plus-square:before {
  content: "\f0fe";
}
.fa-angle-double-left:before {
  content: "\f100";
}
.fa-angle-double-right:before {
  content: "\f101";
}
.fa-angle-double-up:before {
  content: "\f102";
}
.fa-angle-double-down:before {
  content: "\f103";
}
.fa-angle-left:before {
  content: "\f104";
}
.fa-angle-right:before {
  content: "\f105";
}
.fa-angle-up:before {
  content: "\f106";
}
.fa-angle-down:before {
  content: "\f107";
}
.fa-desktop:before {
  content: "\f108";
}
.fa-laptop:before {
  content: "\f109";
}
.fa-tablet:before {
  content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
  content: "\f10b";
}
.fa-circle-o:before {
  content: "\f10c";
}
.fa-quote-left:before {
  content: "\f10d";
}
.fa-quote-right:before {
  content: "\f10e";
}
.fa-spinner:before {
  content: "\f110";
}
.fa-circle:before {
  content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
  content: "\f112";
}
.fa-github-alt:before {
  content: "\f113";
}
.fa-folder-o:before {
  content: "\f114";
}
.fa-folder-open-o:before {
  content: "\f115";
}
.fa-smile-o:before {
  content: "\f118";
}
.fa-frown-o:before {
  content: "\f119";
}
.fa-meh-o:before {
  content: "\f11a";
}
.fa-gamepad:before {
  content: "\f11b";
}
.fa-keyboard-o:before {
  content: "\f11c";
}
.fa-flag-o:before {
  content: "\f11d";
}
.fa-flag-checkered:before {
  content: "\f11e";
}
.fa-terminal:before {
  content: "\f120";
}
.fa-code:before {
  content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
  content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
  content: "\f123";
}
.fa-location-arrow:before {
  content: "\f124";
}
.fa-crop:before {
  content: "\f125";
}
.fa-code-fork:before {
  content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
  content: "\f127";
}
.fa-question:before {
  content: "\f128";
}
.fa-info:before {
  content: "\f129";
}
.fa-exclamation:before {
  content: "\f12a";
}
.fa-superscript:before {
  content: "\f12b";
}
.fa-subscript:before {
  content: "\f12c";
}
.fa-eraser:before {
  content: "\f12d";
}
.fa-puzzle-piece:before {
  content: "\f12e";
}
.fa-microphone:before {
  content: "\f130";
}
.fa-microphone-slash:before {
  content: "\f131";
}
.fa-shield:before {
  content: "\f132";
}
.fa-calendar-o:before {
  content: "\f133";
}
.fa-fire-extinguisher:before {
  content: "\f134";
}
.fa-rocket:before {
  content: "\f135";
}
.fa-maxcdn:before {
  content: "\f136";
}
.fa-chevron-circle-left:before {
  content: "\f137";
}
.fa-chevron-circle-right:before {
  content: "\f138";
}
.fa-chevron-circle-up:before {
  content: "\f139";
}
.fa-chevron-circle-down:before {
  content: "\f13a";
}
.fa-html5:before {
  content: "\f13b";
}
.fa-css3:before {
  content: "\f13c";
}
.fa-anchor:before {
  content: "\f13d";
}
.fa-unlock-alt:before {
  content: "\f13e";
}
.fa-bullseye:before {
  content: "\f140";
}
.fa-ellipsis-h:before {
  content: "\f141";
}
.fa-ellipsis-v:before {
  content: "\f142";
}
.fa-rss-square:before {
  content: "\f143";
}
.fa-play-circle:before {
  content: "\f144";
}
.fa-ticket:before {
  content: "\f145";
}
.fa-minus-square:before {
  content: "\f146";
}
.fa-minus-square-o:before {
  content: "\f147";
}
.fa-level-up:before {
  content: "\f148";
}
.fa-level-down:before {
  content: "\f149";
}
.fa-check-square:before {
  content: "\f14a";
}
.fa-pencil-square:before {
  content: "\f14b";
}
.fa-external-link-square:before {
  content: "\f14c";
}
.fa-share-square:before {
  content: "\f14d";
}
.fa-compass:before {
  content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
  content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
  content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
  content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
  content: "\f153";
}
.fa-gbp:before {
  content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
  content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
  content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
  content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
  content: "\f158";
}
.fa-won:before,
.fa-krw:before {
  content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
  content: "\f15a";
}
.fa-file:before {
  content: "\f15b";
}
.fa-file-text:before {
  content: "\f15c";
}
.fa-sort-alpha-asc:before {
  content: "\f15d";
}
.fa-sort-alpha-desc:before {
  content: "\f15e";
}
.fa-sort-amount-asc:before {
  content: "\f160";
}
.fa-sort-amount-desc:before {
  content: "\f161";
}
.fa-sort-numeric-asc:before {
  content: "\f162";
}
.fa-sort-numeric-desc:before {
  content: "\f163";
}
.fa-thumbs-up:before {
  content: "\f164";
}
.fa-thumbs-down:before {
  content: "\f165";
}
.fa-youtube-square:before {
  content: "\f166";
}
.fa-youtube:before {
  content: "\f167";
}
.fa-xing:before {
  content: "\f168";
}
.fa-xing-square:before {
  content: "\f169";
}
.fa-youtube-play:before {
  content: "\f16a";
}
.fa-dropbox:before {
  content: "\f16b";
}
.fa-stack-overflow:before {
  content: "\f16c";
}
.fa-instagram:before {
  content: "\f16d";
}
.fa-flickr:before {
  content: "\f16e";
}
.fa-adn:before {
  content: "\f170";
}
.fa-bitbucket:before {
  content: "\f171";
}
.fa-bitbucket-square:before {
  content: "\f172";
}
.fa-tumblr:before {
  content: "\f173";
}
.fa-tumblr-square:before {
  content: "\f174";
}
.fa-long-arrow-down:before {
  content: "\f175";
}
.fa-long-arrow-up:before {
  content: "\f176";
}
.fa-long-arrow-left:before {
  content: "\f177";
}
.fa-long-arrow-right:before {
  content: "\f178";
}
.fa-apple:before {
  content: "\f179";
}
.fa-windows:before {
  content: "\f17a";
}
.fa-android:before {
  content: "\f17b";
}
.fa-linux:before {
  content: "\f17c";
}
.fa-dribbble:before {
  content: "\f17d";
}
.fa-skype:before {
  content: "\f17e";
}
.fa-foursquare:before {
  content: "\f180";
}
.fa-trello:before {
  content: "\f181";
}
.fa-female:before {
  content: "\f182";
}
.fa-male:before {
  content: "\f183";
}
.fa-gittip:before {
  content: "\f184";
}
.fa-sun-o:before {
  content: "\f185";
}
.fa-moon-o:before {
  content: "\f186";
}
.fa-archive:before {
  content: "\f187";
}
.fa-bug:before {
  content: "\f188";
}
.fa-vk:before {
  content: "\f189";
}
.fa-weibo:before {
  content: "\f18a";
}
.fa-renren:before {
  content: "\f18b";
}
.fa-pagelines:before {
  content: "\f18c";
}
.fa-stack-exchange:before {
  content: "\f18d";
}
.fa-arrow-circle-o-right:before {
  content: "\f18e";
}
.fa-arrow-circle-o-left:before {
  content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
  content: "\f191";
}
.fa-dot-circle-o:before {
  content: "\f192";
}
.fa-wheelchair:before {
  content: "\f193";
}
.fa-vimeo-square:before {
  content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
  content: "\f195";
}
.fa-plus-square-o:before {
  content: "\f196";
}
.fa-space-shuttle:before {
  content: "\f197";
}
.fa-slack:before {
  content: "\f198";
}
.fa-envelope-square:before {
  content: "\f199";
}
.fa-wordpress:before {
  content: "\f19a";
}
.fa-openid:before {
  content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
  content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
  content: "\f19d";
}
.fa-yahoo:before {
  content: "\f19e";
}
.fa-google:before {
  content: "\f1a0";
}
.fa-reddit:before {
  content: "\f1a1";
}
.fa-reddit-square:before {
  content: "\f1a2";
}
.fa-stumbleupon-circle:before {
  content: "\f1a3";
}
.fa-stumbleupon:before {
  content: "\f1a4";
}
.fa-delicious:before {
  content: "\f1a5";
}
.fa-digg:before {
  content: "\f1a6";
}
.fa-pied-piper:before {
  content: "\f1a7";
}
.fa-pied-piper-alt:before {
  content: "\f1a8";
}
.fa-drupal:before {
  content: "\f1a9";
}
.fa-joomla:before {
  content: "\f1aa";
}
.fa-language:before {
  content: "\f1ab";
}
.fa-fax:before {
  content: "\f1ac";
}
.fa-building:before {
  content: "\f1ad";
}
.fa-child:before {
  content: "\f1ae";
}
.fa-paw:before {
  content: "\f1b0";
}
.fa-spoon:before {
  content: "\f1b1";
}
.fa-cube:before {
  content: "\f1b2";
}
.fa-cubes:before {
  content: "\f1b3";
}
.fa-behance:before {
  content: "\f1b4";
}
.fa-behance-square:before {
  content: "\f1b5";
}
.fa-steam:before {
  content: "\f1b6";
}
.fa-steam-square:before {
  content: "\f1b7";
}
.fa-recycle:before {
  content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
  content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
  content: "\f1ba";
}
.fa-tree:before {
  content: "\f1bb";
}
.fa-spotify:before {
  content: "\f1bc";
}
.fa-deviantart:before {
  content: "\f1bd";
}
.fa-soundcloud:before {
  content: "\f1be";
}
.fa-database:before {
  content: "\f1c0";
}
.fa-file-pdf-o:before {
  content: "\f1c1";
}
.fa-file-word-o:before {
  content: "\f1c2";
}
.fa-file-excel-o:before {
  content: "\f1c3";
}
.fa-file-powerpoint-o:before {
  content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
  content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
  content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
  content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
  content: "\f1c8";
}
.fa-file-code-o:before {
  content: "\f1c9";
}
.fa-vine:before {
  content: "\f1ca";
}
.fa-codepen:before {
  content: "\f1cb";
}
.fa-jsfiddle:before {
  content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
  content: "\f1cd";
}
.fa-circle-o-notch:before {
  content: "\f1ce";
}
.fa-ra:before,
.fa-rebel:before {
  content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
  content: "\f1d1";
}
.fa-git-square:before {
  content: "\f1d2";
}
.fa-git:before {
  content: "\f1d3";
}
.fa-hacker-news:before {
  content: "\f1d4";
}
.fa-tencent-weibo:before {
  content: "\f1d5";
}
.fa-qq:before {
  content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
  content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
  content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
  content: "\f1d9";
}
.fa-history:before {
  content: "\f1da";
}
.fa-circle-thin:before {
  content: "\f1db";
}
.fa-header:before {
  content: "\f1dc";
}
.fa-paragraph:before {
  content: "\f1dd";
}
.fa-sliders:before {
  content: "\f1de";
}
.fa-share-alt:before {
  content: "\f1e0";
}
.fa-share-alt-square:before {
  content: "\f1e1";
}
.fa-bomb:before {
  content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
  content: "\f1e3";
}
.fa-tty:before {
  content: "\f1e4";
}
.fa-binoculars:before {
  content: "\f1e5";
}
.fa-plug:before {
  content: "\f1e6";
}
.fa-slideshare:before {
  content: "\f1e7";
}
.fa-twitch:before {
  content: "\f1e8";
}
.fa-yelp:before {
  content: "\f1e9";
}
.fa-newspaper-o:before {
  content: "\f1ea";
}
.fa-wifi:before {
  content: "\f1eb";
}
.fa-calculator:before {
  content: "\f1ec";
}
.fa-paypal:before {
  content: "\f1ed";
}
.fa-google-wallet:before {
  content: "\f1ee";
}
.fa-cc-visa:before {
  content: "\f1f0";
}
.fa-cc-mastercard:before {
  content: "\f1f1";
}
.fa-cc-discover:before {
  content: "\f1f2";
}
.fa-cc-amex:before {
  content: "\f1f3";
}
.fa-cc-paypal:before {
  content: "\f1f4";
}
.fa-cc-stripe:before {
  content: "\f1f5";
}
.fa-bell-slash:before {
  content: "\f1f6";
}
.fa-bell-slash-o:before {
  content: "\f1f7";
}
.fa-trash:before {
  content: "\f1f8";
}
.fa-copyright:before {
  content: "\f1f9";
}
.fa-at:before {
  content: "\f1fa";
}
.fa-eyedropper:before {
  content: "\f1fb";
}
.fa-paint-brush:before {
  content: "\f1fc";
}
.fa-birthday-cake:before {
  content: "\f1fd";
}
.fa-area-chart:before {
  content: "\f1fe";
}
.fa-pie-chart:before {
  content: "\f200";
}
.fa-line-chart:before {
  content: "\f201";
}
.fa-lastfm:before {
  content: "\f202";
}
.fa-lastfm-square:before {
  content: "\f203";
}
.fa-toggle-off:before {
  content: "\f204";
}
.fa-toggle-on:before {
  content: "\f205";
}
.fa-bicycle:before {
  content: "\f206";
}
.fa-bus:before {
  content: "\f207";
}
.fa-ioxhost:before {
  content: "\f208";
}
.fa-angellist:before {
  content: "\f209";
}
.fa-cc:before {
  content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
  content: "\f20b";
}
.fa-meanpath:before {
  content: "\f20c";
}
/*!
*
* IPython base
*
*/
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
code {
  color: #000;
}
pre {
  font-size: inherit;
  line-height: inherit;
}
label {
  font-weight: normal;
}
/* Make the page background atleast 100% the height of the view port */
/* Make the page itself atleast 70% the height of the view port */
.border-box-sizing {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.corner-all {
  border-radius: 2px;
}
.no-padding {
  padding: 0px;
}
/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer.  It allows the usage of flexible box 
model layouts accross multiple browsers, including older browsers.  The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below).  Browsers that are known to implement this 
new spec completely include:

    Firefox 28.0+
    Chrome 29.0+
    Internet Explorer 11+ 
    Opera 17.0+

Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.hbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
.hbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.vbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.vbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.hbox.reverse,
.vbox.reverse,
.reverse {
  /* Old browsers */
  -webkit-box-direction: reverse;
  -moz-box-direction: reverse;
  box-direction: reverse;
  /* Modern browsers */
  flex-direction: row-reverse;
}
.hbox.box-flex0,
.vbox.box-flex0,
.box-flex0 {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
  width: auto;
}
.hbox.box-flex1,
.vbox.box-flex1,
.box-flex1 {
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex,
.vbox.box-flex,
.box-flex {
  /* Old browsers */
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex2,
.vbox.box-flex2,
.box-flex2 {
  /* Old browsers */
  -webkit-box-flex: 2;
  -moz-box-flex: 2;
  box-flex: 2;
  /* Modern browsers */
  flex: 2;
}
.box-group1 {
  /*  Deprecated */
  -webkit-box-flex-group: 1;
  -moz-box-flex-group: 1;
  box-flex-group: 1;
}
.box-group2 {
  /* Deprecated */
  -webkit-box-flex-group: 2;
  -moz-box-flex-group: 2;
  box-flex-group: 2;
}
.hbox.start,
.vbox.start,
.start {
  /* Old browsers */
  -webkit-box-pack: start;
  -moz-box-pack: start;
  box-pack: start;
  /* Modern browsers */
  justify-content: flex-start;
}
.hbox.end,
.vbox.end,
.end {
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
}
.hbox.center,
.vbox.center,
.center {
  /* Old browsers */
  -webkit-box-pack: center;
  -moz-box-pack: center;
  box-pack: center;
  /* Modern browsers */
  justify-content: center;
}
.hbox.baseline,
.vbox.baseline,
.baseline {
  /* Old browsers */
  -webkit-box-pack: baseline;
  -moz-box-pack: baseline;
  box-pack: baseline;
  /* Modern browsers */
  justify-content: baseline;
}
.hbox.stretch,
.vbox.stretch,
.stretch {
  /* Old browsers */
  -webkit-box-pack: stretch;
  -moz-box-pack: stretch;
  box-pack: stretch;
  /* Modern browsers */
  justify-content: stretch;
}
.hbox.align-start,
.vbox.align-start,
.align-start {
  /* Old browsers */
  -webkit-box-align: start;
  -moz-box-align: start;
  box-align: start;
  /* Modern browsers */
  align-items: flex-start;
}
.hbox.align-end,
.vbox.align-end,
.align-end {
  /* Old browsers */
  -webkit-box-align: end;
  -moz-box-align: end;
  box-align: end;
  /* Modern browsers */
  align-items: flex-end;
}
.hbox.align-center,
.vbox.align-center,
.align-center {
  /* Old browsers */
  -webkit-box-align: center;
  -moz-box-align: center;
  box-align: center;
  /* Modern browsers */
  align-items: center;
}
.hbox.align-baseline,
.vbox.align-baseline,
.align-baseline {
  /* Old browsers */
  -webkit-box-align: baseline;
  -moz-box-align: baseline;
  box-align: baseline;
  /* Modern browsers */
  align-items: baseline;
}
.hbox.align-stretch,
.vbox.align-stretch,
.align-stretch {
  /* Old browsers */
  -webkit-box-align: stretch;
  -moz-box-align: stretch;
  box-align: stretch;
  /* Modern browsers */
  align-items: stretch;
}
div.error {
  margin: 2em;
  text-align: center;
}
div.error > h1 {
  font-size: 500%;
  line-height: normal;
}
div.error > p {
  font-size: 200%;
  line-height: normal;
}
div.traceback-wrapper {
  text-align: left;
  max-width: 800px;
  margin: auto;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
body {
  background-color: #fff;
  /* This makes sure that the body covers the entire window and needs to
       be in a different element than the display: box in wrapper below */
  position: absolute;
  left: 0px;
  right: 0px;
  top: 0px;
  bottom: 0px;
  overflow: visible;
}
body > #header {
  /* Initially hidden to prevent FLOUC */
  display: none;
  background-color: #fff;
  /* Display over codemirror */
  position: relative;
  z-index: 100;
}
body > #header #header-container {
  padding-bottom: 5px;
  padding-top: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
body > #header .header-bar {
  width: 100%;
  height: 1px;
  background: #e7e7e7;
  margin-bottom: -1px;
}
@media print {
  body > #header {
    display: none !important;
  }
}
#header-spacer {
  width: 100%;
  visibility: hidden;
}
@media print {
  #header-spacer {
    display: none;
  }
}
#ipython_notebook {
  padding-left: 0px;
  padding-top: 1px;
  padding-bottom: 1px;
}
@media (max-width: 991px) {
  #ipython_notebook {
    margin-left: 10px;
  }
}
[dir="rtl"] #ipython_notebook {
  float: right !important;
}
#noscript {
  width: auto;
  padding-top: 16px;
  padding-bottom: 16px;
  text-align: center;
  font-size: 22px;
  color: red;
  font-weight: bold;
}
#ipython_notebook img {
  height: 28px;
}
#site {
  width: 100%;
  display: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  overflow: auto;
}
@media print {
  #site {
    height: auto !important;
  }
}
/* Smaller buttons */
.ui-button .ui-button-text {
  padding: 0.2em 0.8em;
  font-size: 77%;
}
input.ui-button {
  padding: 0.3em 0.9em;
}
span#login_widget {
  float: right;
}
span#login_widget > .button,
#logout {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button:focus,
#logout:focus,
span#login_widget > .button.focus,
#logout.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
span#login_widget > .button:hover,
#logout:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active:hover,
#logout:active:hover,
span#login_widget > .button.active:hover,
#logout.active:hover,
.open > .dropdown-togglespan#login_widget > .button:hover,
.open > .dropdown-toggle#logout:hover,
span#login_widget > .button:active:focus,
#logout:active:focus,
span#login_widget > .button.active:focus,
#logout.active:focus,
.open > .dropdown-togglespan#login_widget > .button:focus,
.open > .dropdown-toggle#logout:focus,
span#login_widget > .button:active.focus,
#logout:active.focus,
span#login_widget > .button.active.focus,
#logout.active.focus,
.open > .dropdown-togglespan#login_widget > .button.focus,
.open > .dropdown-toggle#logout.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  background-image: none;
}
span#login_widget > .button.disabled:hover,
#logout.disabled:hover,
span#login_widget > .button[disabled]:hover,
#logout[disabled]:hover,
fieldset[disabled] span#login_widget > .button:hover,
fieldset[disabled] #logout:hover,
span#login_widget > .button.disabled:focus,
#logout.disabled:focus,
span#login_widget > .button[disabled]:focus,
#logout[disabled]:focus,
fieldset[disabled] span#login_widget > .button:focus,
fieldset[disabled] #logout:focus,
span#login_widget > .button.disabled.focus,
#logout.disabled.focus,
span#login_widget > .button[disabled].focus,
#logout[disabled].focus,
fieldset[disabled] span#login_widget > .button.focus,
fieldset[disabled] #logout.focus {
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button .badge,
#logout .badge {
  color: #fff;
  background-color: #333;
}
.nav-header {
  text-transform: none;
}
#header > span {
  margin-top: 10px;
}
.modal_stretch .modal-dialog {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 80vh;
}
.modal_stretch .modal-dialog .modal-body {
  max-height: calc(100vh - 200px);
  overflow: auto;
  flex: 1;
}
@media (min-width: 768px) {
  .modal .modal-dialog {
    width: 700px;
  }
}
@media (min-width: 768px) {
  select.form-control {
    margin-left: 12px;
    margin-right: 12px;
  }
}
/*!
*
* IPython auth
*
*/
.center-nav {
  display: inline-block;
  margin-bottom: -4px;
}
/*!
*
* IPython tree view
*
*/
/* We need an invisible input field on top of the sentense*/
/* "Drag file onto the list ..." */
.alternate_upload {
  background-color: none;
  display: inline;
}
.alternate_upload.form {
  padding: 0;
  margin: 0;
}
.alternate_upload input.fileinput {
  text-align: center;
  vertical-align: middle;
  display: inline;
  opacity: 0;
  z-index: 2;
  width: 12ex;
  margin-right: -12ex;
}
.alternate_upload .btn-upload {
  height: 22px;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
[dir="rtl"] #tabs li {
  float: right;
}
ul#tabs {
  margin-bottom: 4px;
}
[dir="rtl"] ul#tabs {
  margin-right: 0px;
}
ul#tabs a {
  padding-top: 6px;
  padding-bottom: 4px;
}
ul.breadcrumb a:focus,
ul.breadcrumb a:hover {
  text-decoration: none;
}
ul.breadcrumb i.icon-home {
  font-size: 16px;
  margin-right: 4px;
}
ul.breadcrumb span {
  color: #5e5e5e;
}
.list_toolbar {
  padding: 4px 0 4px 0;
  vertical-align: middle;
}
.list_toolbar .tree-buttons {
  padding-top: 1px;
}
[dir="rtl"] .list_toolbar .tree-buttons {
  float: left !important;
}
[dir="rtl"] .list_toolbar .pull-right {
  padding-top: 1px;
  float: left !important;
}
[dir="rtl"] .list_toolbar .pull-left {
  float: right !important;
}
.dynamic-buttons {
  padding-top: 3px;
  display: inline-block;
}
.list_toolbar [class*="span"] {
  min-height: 24px;
}
.list_header {
  font-weight: bold;
  background-color: #EEE;
}
.list_placeholder {
  font-weight: bold;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
}
.list_container {
  margin-top: 4px;
  margin-bottom: 20px;
  border: 1px solid #ddd;
  border-radius: 2px;
}
.list_container > div {
  border-bottom: 1px solid #ddd;
}
.list_container > div:hover .list-item {
  background-color: red;
}
.list_container > div:last-child {
  border: none;
}
.list_item:hover .list_item {
  background-color: #ddd;
}
.list_item a {
  text-decoration: none;
}
.list_item:hover {
  background-color: #fafafa;
}
.list_header > div,
.list_item > div {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
.list_header > div input,
.list_item > div input {
  margin-right: 7px;
  margin-left: 14px;
  vertical-align: baseline;
  line-height: 22px;
  position: relative;
  top: -1px;
}
.list_header > div .item_link,
.list_item > div .item_link {
  margin-left: -1px;
  vertical-align: baseline;
  line-height: 22px;
}
.new-file input[type=checkbox] {
  visibility: hidden;
}
.item_name {
  line-height: 22px;
  height: 24px;
}
.item_icon {
  font-size: 14px;
  color: #5e5e5e;
  margin-right: 7px;
  margin-left: 7px;
  line-height: 22px;
  vertical-align: baseline;
}
.item_buttons {
  line-height: 1em;
  margin-left: -5px;
}
.item_buttons .btn,
.item_buttons .btn-group,
.item_buttons .input-group {
  float: left;
}
.item_buttons > .btn,
.item_buttons > .btn-group,
.item_buttons > .input-group {
  margin-left: 5px;
}
.item_buttons .btn {
  min-width: 13ex;
}
.item_buttons .running-indicator {
  padding-top: 4px;
  color: #5cb85c;
}
.item_buttons .kernel-name {
  padding-top: 4px;
  color: #5bc0de;
  margin-right: 7px;
  float: left;
}
.toolbar_info {
  height: 24px;
  line-height: 24px;
}
.list_item input:not([type=checkbox]) {
  padding-top: 3px;
  padding-bottom: 3px;
  height: 22px;
  line-height: 14px;
  margin: 0px;
}
.highlight_text {
  color: blue;
}
#project_name {
  display: inline-block;
  padding-left: 7px;
  margin-left: -2px;
}
#project_name > .breadcrumb {
  padding: 0px;
  margin-bottom: 0px;
  background-color: transparent;
  font-weight: bold;
}
#tree-selector {
  padding-right: 0px;
}
[dir="rtl"] #tree-selector a {
  float: right;
}
#button-select-all {
  min-width: 50px;
}
#select-all {
  margin-left: 7px;
  margin-right: 2px;
}
.menu_icon {
  margin-right: 2px;
}
.tab-content .row {
  margin-left: 0px;
  margin-right: 0px;
}
.folder_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f114";
}
.folder_icon:before.pull-left {
  margin-right: .3em;
}
.folder_icon:before.pull-right {
  margin-left: .3em;
}
.notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
}
.notebook_icon:before.pull-left {
  margin-right: .3em;
}
.notebook_icon:before.pull-right {
  margin-left: .3em;
}
.running_notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
  color: #5cb85c;
}
.running_notebook_icon:before.pull-left {
  margin-right: .3em;
}
.running_notebook_icon:before.pull-right {
  margin-left: .3em;
}
.file_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f016";
  position: relative;
  top: -2px;
}
.file_icon:before.pull-left {
  margin-right: .3em;
}
.file_icon:before.pull-right {
  margin-left: .3em;
}
#notebook_toolbar .pull-right {
  padding-top: 0px;
  margin-right: -1px;
}
ul#new-menu {
  left: auto;
  right: 0;
}
[dir="rtl"] #new-menu {
  text-align: right;
}
.kernel-menu-icon {
  padding-right: 12px;
  width: 24px;
  content: "\f096";
}
.kernel-menu-icon:before {
  content: "\f096";
}
.kernel-menu-icon-current:before {
  content: "\f00c";
}
#tab_content {
  padding-top: 20px;
}
#running .panel-group .panel {
  margin-top: 3px;
  margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
  background-color: #EEE;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
  text-decoration: none;
}
#running .panel-group .panel .panel-body {
  padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
  margin-top: 0px;
  margin-bottom: 0px;
  border: 0px;
  border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
  border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
  border-bottom: 0px;
}
[dir="rtl"] #running .col-sm-8 {
  float: right !important;
}
.delete-button {
  display: none;
}
.duplicate-button {
  display: none;
}
.rename-button {
  display: none;
}
.shutdown-button {
  display: none;
}
.dynamic-instructions {
  display: inline-block;
  padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
  padding: 0px 5px;
}
.selected-keymap i.fa:before {
  content: "\f00c";
}
#mode-menu {
  overflow: auto;
  max-height: 20em;
}
.edit_app #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
  /* Use a negative 1 bottom margin, so the border overlaps the border of the
    header */
  margin-bottom: -1px;
}
.dirty-indicator {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator.pull-left {
  margin-right: .3em;
}
.dirty-indicator.pull-right {
  margin-left: .3em;
}
.dirty-indicator-dirty {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-dirty.pull-left {
  margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-clean.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f00c";
}
.dirty-indicator-clean:before.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean:before.pull-right {
  margin-left: .3em;
}
#filename {
  font-size: 16pt;
  display: table;
  padding: 0px 5px;
}
#current-mode {
  padding-left: 5px;
  padding-right: 5px;
}
#texteditor-backdrop {
  padding-top: 20px;
  padding-bottom: 20px;
}
@media not print {
  #texteditor-backdrop {
    background-color: #EEE;
  }
}
@media print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container {
    padding: 0px;
    background-color: #fff;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI colors. */
.ansibold {
  font-weight: bold;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
  color: black;
}
.ansired {
  color: darkred;
}
.ansigreen {
  color: darkgreen;
}
.ansiyellow {
  color: #c4a000;
}
.ansiblue {
  color: darkblue;
}
.ansipurple {
  color: darkviolet;
}
.ansicyan {
  color: steelblue;
}
.ansigray {
  color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
  background-color: black;
}
.ansibgred {
  background-color: red;
}
.ansibggreen {
  background-color: green;
}
.ansibgyellow {
  background-color: yellow;
}
.ansibgblue {
  background-color: blue;
}
.ansibgpurple {
  background-color: magenta;
}
.ansibgcyan {
  background-color: cyan;
}
.ansibggray {
  background-color: gray;
}
div.cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  border-radius: 2px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  width: 100%;
  padding: 5px;
  /* This acts as a spacer between cells, that is outside the border */
  margin: 0px;
  outline: none;
  border-left-width: 1px;
  padding-left: 5px;
  background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
}
div.cell.jupyter-soft-selected {
  border-left-color: #90CAF9;
  border-left-color: #E3F2FD;
  border-left-width: 1px;
  padding-left: 5px;
  border-right-color: #E3F2FD;
  border-right-width: 1px;
  background: #E3F2FD;
}
@media print {
  div.cell.jupyter-soft-selected {
    border-color: transparent;
  }
}
div.cell.selected {
  border-color: #ababab;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
}
@media print {
  div.cell.selected {
    border-color: transparent;
  }
}
div.cell.selected.jupyter-soft-selected {
  border-left-width: 0;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
}
.edit_mode div.cell.selected {
  border-color: #66BB6A;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
}
@media print {
  .edit_mode div.cell.selected {
    border-color: transparent;
  }
}
.prompt {
  /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
  min-width: 14ex;
  /* This padding is tuned to match the padding on the CodeMirror editor. */
  padding: 0.4em;
  margin: 0px;
  font-family: monospace;
  text-align: right;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
  /* Don't highlight prompt number selection */
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /* Use default cursor */
  cursor: default;
}
@media (max-width: 540px) {
  .prompt {
    text-align: left;
  }
}
div.inner_cell {
  min-width: 0;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
  border: 1px solid #cfcfcf;
  border-radius: 2px;
  background: #f7f7f7;
  line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
   is no content in the output_subarea and the prompt. The main purpose of this is
   to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
  padding-top: 0;
  padding-bottom: 0;
}
div.unrecognized_cell {
  padding: 5px 5px 5px 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.unrecognized_cell .inner_cell {
  border-radius: 2px;
  padding: 5px;
  font-weight: bold;
  color: red;
  border: 1px solid #cfcfcf;
  background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
  color: inherit;
  text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
  color: inherit;
  text-decoration: none;
}
@media (max-width: 540px) {
  div.unrecognized_cell > div.prompt {
    display: none;
  }
}
div.code_cell {
  /* avoid page breaking on code cells when printing */
}
@media print {
  div.code_cell {
    page-break-inside: avoid;
  }
}
/* any special styling for code cells that are currently running goes here */
div.input {
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.input {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
  color: #303F9F;
  border-top: 1px solid transparent;
}
div.input_area > div.highlight {
  margin: 0.4em;
  border: none;
  padding: 0px;
  background-color: transparent;
}
div.input_area > div.highlight > pre {
  margin: 0px;
  border: none;
  padding: 0px;
  background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
 * monospace font with inconsistent normal/bold/italic height.  See
 * notebookmain.js.  Such fonts will have keywords vertically offset with
 * respect to the rest of the text.  The user should select a better font.
 * See: https://github.com/ipython/ipython/issues/1503
 *
 * .CodeMirror span {
 *      vertical-align: bottom;
 * }
 */
.CodeMirror {
  line-height: 1.21429em;
  /* Changed from 1em to our global default */
  font-size: 14px;
  height: auto;
  /* Changed to auto to autogrow */
  background: none;
  /* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
  /*  The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
  /*  We have found that if it is visible, vertical scrollbars appear with font size changes.*/
  overflow-y: hidden;
  overflow-x: auto;
}
.CodeMirror-lines {
  /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
  /* we have set a different line-height and want this to scale with that. */
  padding: 0.4em;
}
.CodeMirror-linenumber {
  padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.CodeMirror pre {
  /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
  /* .CodeMirror-lines */
  padding: 0;
  border: 0;
  border-radius: 0;
}
/*

Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme

*/
.highlight-base {
  color: #000;
}
.highlight-variable {
  color: #000;
}
.highlight-variable-2 {
  color: #1a1a1a;
}
.highlight-variable-3 {
  color: #333333;
}
.highlight-string {
  color: #BA2121;
}
.highlight-comment {
  color: #408080;
  font-style: italic;
}
.highlight-number {
  color: #080;
}
.highlight-atom {
  color: #88F;
}
.highlight-keyword {
  color: #008000;
  font-weight: bold;
}
.highlight-builtin {
  color: #008000;
}
.highlight-error {
  color: #f00;
}
.highlight-operator {
  color: #AA22FF;
  font-weight: bold;
}
.highlight-meta {
  color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
  color: #00f;
}
.highlight-string-2 {
  color: #f50;
}
.highlight-qualifier {
  color: #555;
}
.highlight-bracket {
  color: #997;
}
.highlight-tag {
  color: #170;
}
.highlight-attribute {
  color: #00c;
}
.highlight-header {
  color: blue;
}
.highlight-quote {
  color: #090;
}
.highlight-link {
  color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
  color: #008000;
  font-weight: bold;
}
.cm-s-ipython span.cm-atom {
  color: #88F;
}
.cm-s-ipython span.cm-number {
  color: #080;
}
.cm-s-ipython span.cm-def {
  color: #00f;
}
.cm-s-ipython span.cm-variable {
  color: #000;
}
.cm-s-ipython span.cm-operator {
  color: #AA22FF;
  font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
  color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
  color: #333333;
}
.cm-s-ipython span.cm-comment {
  color: #408080;
  font-style: italic;
}
.cm-s-ipython span.cm-string {
  color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
  color: #f50;
}
.cm-s-ipython span.cm-meta {
  color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
  color: #555;
}
.cm-s-ipython span.cm-builtin {
  color: #008000;
}
.cm-s-ipython span.cm-bracket {
  color: #997;
}
.cm-s-ipython span.cm-tag {
  color: #170;
}
.cm-s-ipython span.cm-attribute {
  color: #00c;
}
.cm-s-ipython span.cm-header {
  color: blue;
}
.cm-s-ipython span.cm-quote {
  color: #090;
}
.cm-s-ipython span.cm-link {
  color: #00c;
}
.cm-s-ipython span.cm-error {
  color: #f00;
}
.cm-s-ipython span.cm-tab {
  background: url();
  background-position: right;
  background-repeat: no-repeat;
}
div.output_wrapper {
  /* this position must be relative to enable descendents to be absolute within it */
  position: relative;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
  /* ideally, this would be max-height, but FF barfs all over that */
  height: 24em;
  /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
  width: 100%;
  overflow: auto;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
  margin: 0px;
  padding: 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
div.out_prompt_overlay {
  height: 100%;
  padding: 0px 0.4em;
  position: absolute;
  border-radius: 2px;
}
div.out_prompt_overlay:hover {
  /* use inner shadow to get border that is computed the same on WebKit/FF */
  -webkit-box-shadow: inset 0 0 1px #000;
  box-shadow: inset 0 0 1px #000;
  background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
  color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
  padding: 0px;
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.output_area .MathJax_Display {
  text-align: left !important;
}
div.output_area .rendered_html table {
  margin-left: 0;
  margin-right: 0;
}
div.output_area .rendered_html img {
  margin-left: 0;
  margin-right: 0;
}
div.output_area img,
div.output_area svg {
  max-width: 100%;
  height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
  max-width: none;
}
/* This is needed to protect the pre formating from global settings such
   as that of bootstrap */
.output {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.output_area {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
div.output_area pre {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  color: black;
  background-color: transparent;
  border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
   the prompt div. */
div.output_subarea {
  overflow-x: auto;
  padding: 0.4em;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
  max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
  overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
   output types */
/* all text output has this class: */
div.output_text {
  text-align: left;
  color: #000;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
  background: #fdd;
  /* very light red background for stderr */
}
div.output_latex {
  text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
  padding: 0;
}
.js-error {
  color: darkred;
}
/* raw_input styles */
div.raw_input_container {
  line-height: 1.21429em;
  padding-top: 5px;
}
pre.raw_input_prompt {
  /* nothing needed here. */
}
input.raw_input {
  font-family: monospace;
  font-size: inherit;
  color: inherit;
  width: auto;
  /* make sure input baseline aligns with prompt */
  vertical-align: baseline;
  /* padding + margin = 0.5em between prompt and cursor */
  padding: 0em 0.25em;
  margin: 0em 0.25em;
}
input.raw_input:focus {
  box-shadow: none;
}
p.p-space {
  margin-bottom: 10px;
}
div.output_unrecognized {
  padding: 5px;
  font-weight: bold;
  color: red;
}
div.output_unrecognized a {
  color: inherit;
  text-decoration: none;
}
div.output_unrecognized a:hover {
  color: inherit;
  text-decoration: none;
}
.rendered_html {
  color: #000;
  /* any extras will just be numbers: */
}
.rendered_html em {
  font-style: italic;
}
.rendered_html strong {
  font-weight: bold;
}
.rendered_html u {
  text-decoration: underline;
}
.rendered_html :link {
  text-decoration: underline;
}
.rendered_html :visited {
  text-decoration: underline;
}
.rendered_html h1 {
  font-size: 185.7%;
  margin: 1.08em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h2 {
  font-size: 157.1%;
  margin: 1.27em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h3 {
  font-size: 128.6%;
  margin: 1.55em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h4 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h5 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h6 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h1:first-child {
  margin-top: 0.538em;
}
.rendered_html h2:first-child {
  margin-top: 0.636em;
}
.rendered_html h3:first-child {
  margin-top: 0.777em;
}
.rendered_html h4:first-child {
  margin-top: 1em;
}
.rendered_html h5:first-child {
  margin-top: 1em;
}
.rendered_html h6:first-child {
  margin-top: 1em;
}
.rendered_html ul {
  list-style: disc;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ul ul {
  list-style: square;
  margin: 0em 2em;
}
.rendered_html ul ul ul {
  list-style: circle;
  margin: 0em 2em;
}
.rendered_html ol {
  list-style: decimal;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ol ol {
  list-style: upper-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol {
  list-style: lower-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol {
  list-style: lower-roman;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol ol {
  list-style: decimal;
  margin: 0em 2em;
}
.rendered_html * + ul {
  margin-top: 1em;
}
.rendered_html * + ol {
  margin-top: 1em;
}
.rendered_html hr {
  color: black;
  background-color: black;
}
.rendered_html pre {
  margin: 1em 2em;
}
.rendered_html pre,
.rendered_html code {
  border: 0;
  background-color: #fff;
  color: #000;
  font-size: 100%;
  padding: 0px;
}
.rendered_html blockquote {
  margin: 1em 2em;
}
.rendered_html table {
  margin-left: auto;
  margin-right: auto;
  border: 1px solid black;
  border-collapse: collapse;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
  border: 1px solid black;
  border-collapse: collapse;
  margin: 1em 2em;
}
.rendered_html td,
.rendered_html th {
  text-align: left;
  vertical-align: middle;
  padding: 4px;
}
.rendered_html th {
  font-weight: bold;
}
.rendered_html * + table {
  margin-top: 1em;
}
.rendered_html p {
  text-align: left;
}
.rendered_html * + p {
  margin-top: 1em;
}
.rendered_html img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.rendered_html * + img {
  margin-top: 1em;
}
.rendered_html img,
.rendered_html svg {
  max-width: 100%;
  height: auto;
}
.rendered_html img.unconfined,
.rendered_html svg.unconfined {
  max-width: none;
}
div.text_cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.text_cell > div.prompt {
    display: none;
  }
}
div.text_cell_render {
  /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
  outline: none;
  resize: none;
  width: inherit;
  border-style: none;
  padding: 0.5em 0.5em 0.5em 0.4em;
  color: #000;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
a.anchor-link:link {
  text-decoration: none;
  padding: 0px 20px;
  visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
  visibility: visible;
}
.text_cell.rendered .input_area {
  display: none;
}
.text_cell.rendered .rendered_html {
  overflow-x: auto;
  overflow-y: hidden;
}
.text_cell.unrendered .text_cell_render {
  display: none;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
  font-weight: bold;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
  font-size: 185.7%;
}
.cm-header-2 {
  font-size: 157.1%;
}
.cm-header-3 {
  font-size: 128.6%;
}
.cm-header-4 {
  font-size: 110%;
}
.cm-header-5 {
  font-size: 100%;
  font-style: italic;
}
.cm-header-6 {
  font-size: 100%;
  font-style: italic;
}
/*!
*
* IPython notebook webapp
*
*/
@media (max-width: 767px) {
  .notebook_app {
    padding-left: 0px;
    padding-right: 0px;
  }
}
#ipython-main-app {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook_panel {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook {
  font-size: 14px;
  line-height: 20px;
  overflow-y: hidden;
  overflow-x: auto;
  width: 100%;
  /* This spaces the page away from the edge of the notebook area */
  padding-top: 20px;
  margin: 0px;
  outline: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  min-height: 100%;
}
@media not print {
  #notebook-container {
    padding: 15px;
    background-color: #fff;
    min-height: 0;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
@media print {
  #notebook-container {
    width: 100%;
  }
}
div.ui-widget-content {
  border: 1px solid #ababab;
  outline: none;
}
pre.dialog {
  background-color: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 2px;
  padding: 0.4em;
  padding-left: 2em;
}
p.dialog {
  padding: 0.2em;
}
/* Word-wrap output correctly.  This is the CSS3 spelling, though Firefox seems
   to not honor it correctly.  Webkit browsers (Chrome, rekonq, Safari) do.
 */
pre,
code,
kbd,
samp {
  white-space: pre-wrap;
}
#fonttest {
  font-family: monospace;
}
p {
  margin-bottom: 0;
}
.end_space {
  min-height: 100px;
  transition: height .2s ease;
}
.notebook_app > #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
@media not print {
  .notebook_app {
    background-color: #EEE;
  }
}
kbd {
  border-style: solid;
  border-width: 1px;
  box-shadow: none;
  margin: 2px;
  padding-left: 2px;
  padding-right: 2px;
  padding-top: 1px;
  padding-bottom: 1px;
}
/* CSS for the cell toolbar */
.celltoolbar {
  border: thin solid #CFCFCF;
  border-bottom: none;
  background: #EEE;
  border-radius: 2px 2px 0px 0px;
  width: 100%;
  height: 29px;
  padding-right: 4px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
  display: -webkit-flex;
}
@media print {
  .celltoolbar {
    display: none;
  }
}
.ctb_hideshow {
  display: none;
  vertical-align: bottom;
}
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
   Cell toolbars are only shown when the ctb_global_show class is also set.
*/
.ctb_global_show .ctb_show.ctb_hideshow {
  display: block;
}
.ctb_global_show .ctb_show + .input_area,
.ctb_global_show .ctb_show + div.text_cell_input,
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border-top-right-radius: 0px;
  border-top-left-radius: 0px;
}
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border: 1px solid #cfcfcf;
}
.celltoolbar {
  font-size: 87%;
  padding-top: 3px;
}
.celltoolbar select {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
  width: inherit;
  font-size: inherit;
  height: 22px;
  padding: 0px;
  display: inline-block;
}
.celltoolbar select:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.celltoolbar select::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.celltoolbar select:-ms-input-placeholder {
  color: #999;
}
.celltoolbar select::-webkit-input-placeholder {
  color: #999;
}
.celltoolbar select::-ms-expand {
  border: 0;
  background-color: transparent;
}
.celltoolbar select[disabled],
.celltoolbar select[readonly],
fieldset[disabled] .celltoolbar select {
  background-color: #eeeeee;
  opacity: 1;
}
.celltoolbar select[disabled],
fieldset[disabled] .celltoolbar select {
  cursor: not-allowed;
}
textarea.celltoolbar select {
  height: auto;
}
select.celltoolbar select {
  height: 30px;
  line-height: 30px;
}
textarea.celltoolbar select,
select[multiple].celltoolbar select {
  height: auto;
}
.celltoolbar label {
  margin-left: 5px;
  margin-right: 5px;
}
.completions {
  position: absolute;
  z-index: 110;
  overflow: hidden;
  border: 1px solid #ababab;
  border-radius: 2px;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  line-height: 1;
}
.completions select {
  background: white;
  outline: none;
  border: none;
  padding: 0px;
  margin: 0px;
  overflow: auto;
  font-family: monospace;
  font-size: 110%;
  color: #000;
  width: auto;
}
.completions select option.context {
  color: #286090;
}
#kernel_logo_widget {
  float: right !important;
  float: right;
}
#kernel_logo_widget .current_kernel_logo {
  display: none;
  margin-top: -1px;
  margin-bottom: -1px;
  width: 32px;
  height: 32px;
}
#menubar {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  margin-top: 1px;
}
#menubar .navbar {
  border-top: 1px;
  border-radius: 0px 0px 2px 2px;
  margin-bottom: 0px;
}
#menubar .navbar-toggle {
  float: left;
  padding-top: 7px;
  padding-bottom: 7px;
  border: none;
}
#menubar .navbar-collapse {
  clear: left;
}
.nav-wrapper {
  border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
  padding-top: 4px;
}
ul#help_menu li a {
  overflow: hidden;
  padding-right: 2.2em;
}
ul#help_menu li a i {
  margin-right: -1.2em;
}
.dropdown-submenu {
  position: relative;
}
.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
}
.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}
.dropdown-submenu > a:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: block;
  content: "\f0da";
  float: right;
  color: #333333;
  margin-top: 2px;
  margin-right: -10px;
}
.dropdown-submenu > a:after.pull-left {
  margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
  margin-left: .3em;
}
.dropdown-submenu:hover > a:after {
  color: #262626;
}
.dropdown-submenu.pull-left {
  float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
}
#notification_area {
  float: right !important;
  float: right;
  z-index: 10;
}
.indicator_area {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#kernel_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  border-left: 1px solid;
}
#kernel_indicator .kernel_indicator_name {
  padding-left: 5px;
  padding-right: 5px;
}
#modal_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#readonly-indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  margin-top: 2px;
  margin-bottom: 0px;
  margin-left: 0px;
  margin-right: 0px;
  display: none;
}
.modal_indicator:before {
  width: 1.28571429em;
  text-align: center;
}
.edit_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f040";
}
.edit_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.edit_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.command_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ' ';
}
.command_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.command_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.kernel_idle_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f10c";
}
.kernel_idle_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_idle_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_busy_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f111";
}
.kernel_busy_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_busy_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_dead_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f1e2";
}
.kernel_dead_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_dead_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_disconnected_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f127";
}
.kernel_disconnected_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_disconnected_icon:before.pull-right {
  margin-left: .3em;
}
.notification_widget {
  color: #777;
  z-index: 10;
  background: rgba(240, 240, 240, 0.5);
  margin-right: 4px;
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget:focus,
.notification_widget.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.notification_widget:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active:hover,
.notification_widget.active:hover,
.open > .dropdown-toggle.notification_widget:hover,
.notification_widget:active:focus,
.notification_widget.active:focus,
.open > .dropdown-toggle.notification_widget:focus,
.notification_widget:active.focus,
.notification_widget.active.focus,
.open > .dropdown-toggle.notification_widget.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  background-image: none;
}
.notification_widget.disabled:hover,
.notification_widget[disabled]:hover,
fieldset[disabled] .notification_widget:hover,
.notification_widget.disabled:focus,
.notification_widget[disabled]:focus,
fieldset[disabled] .notification_widget:focus,
.notification_widget.disabled.focus,
.notification_widget[disabled].focus,
fieldset[disabled] .notification_widget.focus {
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget .badge {
  color: #fff;
  background-color: #333;
}
.notification_widget.warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning:focus,
.notification_widget.warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.notification_widget.warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active:hover,
.notification_widget.warning.active:hover,
.open > .dropdown-toggle.notification_widget.warning:hover,
.notification_widget.warning:active:focus,
.notification_widget.warning.active:focus,
.open > .dropdown-toggle.notification_widget.warning:focus,
.notification_widget.warning:active.focus,
.notification_widget.warning.active.focus,
.open > .dropdown-toggle.notification_widget.warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  background-image: none;
}
.notification_widget.warning.disabled:hover,
.notification_widget.warning[disabled]:hover,
fieldset[disabled] .notification_widget.warning:hover,
.notification_widget.warning.disabled:focus,
.notification_widget.warning[disabled]:focus,
fieldset[disabled] .notification_widget.warning:focus,
.notification_widget.warning.disabled.focus,
.notification_widget.warning[disabled].focus,
fieldset[disabled] .notification_widget.warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.notification_widget.success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success:focus,
.notification_widget.success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.notification_widget.success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active:hover,
.notification_widget.success.active:hover,
.open > .dropdown-toggle.notification_widget.success:hover,
.notification_widget.success:active:focus,
.notification_widget.success.active:focus,
.open > .dropdown-toggle.notification_widget.success:focus,
.notification_widget.success:active.focus,
.notification_widget.success.active.focus,
.open > .dropdown-toggle.notification_widget.success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  background-image: none;
}
.notification_widget.success.disabled:hover,
.notification_widget.success[disabled]:hover,
fieldset[disabled] .notification_widget.success:hover,
.notification_widget.success.disabled:focus,
.notification_widget.success[disabled]:focus,
fieldset[disabled] .notification_widget.success:focus,
.notification_widget.success.disabled.focus,
.notification_widget.success[disabled].focus,
fieldset[disabled] .notification_widget.success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.notification_widget.info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info:focus,
.notification_widget.info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.notification_widget.info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active:hover,
.notification_widget.info.active:hover,
.open > .dropdown-toggle.notification_widget.info:hover,
.notification_widget.info:active:focus,
.notification_widget.info.active:focus,
.open > .dropdown-toggle.notification_widget.info:focus,
.notification_widget.info:active.focus,
.notification_widget.info.active.focus,
.open > .dropdown-toggle.notification_widget.info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  background-image: none;
}
.notification_widget.info.disabled:hover,
.notification_widget.info[disabled]:hover,
fieldset[disabled] .notification_widget.info:hover,
.notification_widget.info.disabled:focus,
.notification_widget.info[disabled]:focus,
fieldset[disabled] .notification_widget.info:focus,
.notification_widget.info.disabled.focus,
.notification_widget.info[disabled].focus,
fieldset[disabled] .notification_widget.info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.notification_widget.danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger:focus,
.notification_widget.danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.notification_widget.danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active:hover,
.notification_widget.danger.active:hover,
.open > .dropdown-toggle.notification_widget.danger:hover,
.notification_widget.danger:active:focus,
.notification_widget.danger.active:focus,
.open > .dropdown-toggle.notification_widget.danger:focus,
.notification_widget.danger:active.focus,
.notification_widget.danger.active.focus,
.open > .dropdown-toggle.notification_widget.danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  background-image: none;
}
.notification_widget.danger.disabled:hover,
.notification_widget.danger[disabled]:hover,
fieldset[disabled] .notification_widget.danger:hover,
.notification_widget.danger.disabled:focus,
.notification_widget.danger[disabled]:focus,
fieldset[disabled] .notification_widget.danger:focus,
.notification_widget.danger.disabled.focus,
.notification_widget.danger[disabled].focus,
fieldset[disabled] .notification_widget.danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger .badge {
  color: #d9534f;
  background-color: #fff;
}
div#pager {
  background-color: #fff;
  font-size: 14px;
  line-height: 20px;
  overflow: hidden;
  display: none;
  position: fixed;
  bottom: 0px;
  width: 100%;
  max-height: 50%;
  padding-top: 8px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  /* Display over codemirror */
  z-index: 100;
  /* Hack which prevents jquery ui resizable from changing top. */
  top: auto !important;
}
div#pager pre {
  line-height: 1.21429em;
  color: #000;
  background-color: #f7f7f7;
  padding: 0.4em;
}
div#pager #pager-button-area {
  position: absolute;
  top: 8px;
  right: 20px;
}
div#pager #pager-contents {
  position: relative;
  overflow: auto;
  width: 100%;
  height: 100%;
}
div#pager #pager-contents #pager-container {
  position: relative;
  padding: 15px 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
div#pager .ui-resizable-handle {
  top: 0px;
  height: 8px;
  background: #f7f7f7;
  border-top: 1px solid #cfcfcf;
  border-bottom: 1px solid #cfcfcf;
  /* This injects handle bars (a short, wide = symbol) for 
        the resize handle. */
}
div#pager .ui-resizable-handle::after {
  content: '';
  top: 2px;
  left: 50%;
  height: 3px;
  width: 30px;
  margin-left: -15px;
  position: absolute;
  border-top: 1px solid #cfcfcf;
}
.quickhelp {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  line-height: 1.8em;
}
.shortcut_key {
  display: inline-block;
  width: 21ex;
  text-align: right;
  font-family: monospace;
}
.shortcut_descr {
  display: inline-block;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
span.save_widget {
  margin-top: 6px;
}
span.save_widget span.filename {
  height: 1em;
  line-height: 1em;
  padding: 3px;
  margin-left: 16px;
  border: none;
  font-size: 146.5%;
  border-radius: 2px;
}
span.save_widget span.filename:hover {
  background-color: #e6e6e6;
}
span.checkpoint_status,
span.autosave_status {
  font-size: small;
}
@media (max-width: 767px) {
  span.save_widget {
    font-size: small;
  }
  span.checkpoint_status,
  span.autosave_status {
    display: none;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  span.checkpoint_status {
    display: none;
  }
  span.autosave_status {
    font-size: x-small;
  }
}
.toolbar {
  padding: 0px;
  margin-left: -5px;
  margin-top: 2px;
  margin-bottom: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.toolbar select,
.toolbar label {
  width: auto;
  vertical-align: middle;
  margin-right: 2px;
  margin-bottom: 0px;
  display: inline;
  font-size: 92%;
  margin-left: 0.3em;
  margin-right: 0.3em;
  padding: 0px;
  padding-top: 3px;
}
.toolbar .btn {
  padding: 2px 8px;
}
.toolbar .btn-group {
  margin-top: 0px;
  margin-left: 5px;
}
#maintoolbar {
  margin-bottom: -3px;
  margin-top: -8px;
  border: 0px;
  min-height: 27px;
  margin-left: 0px;
  padding-top: 11px;
  padding-bottom: 3px;
}
#maintoolbar .navbar-text {
  float: none;
  vertical-align: middle;
  text-align: right;
  margin-left: 5px;
  margin-right: 0px;
  margin-top: 0px;
}
.select-xs {
  height: 24px;
}
.pulse,
.dropdown-menu > li > a.pulse,
li.pulse > a.dropdown-toggle,
li.pulse.open > a.dropdown-toggle {
  background-color: #F37626;
  color: white;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
 * of chance of beeing generated from the ../less/[samename].less file, you can
 * try to get back the less file by reverting somme commit in history
 **/
/*
 * We'll try to get something pretty, so we
 * have some strange css to have the scroll bar on
 * the left with fix button on the top right of the tooltip
 */
@-moz-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-moz-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/*properties of tooltip after "expand"*/
.bigtooltip {
  overflow: auto;
  height: 200px;
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
}
/*properties of tooltip before "expand"*/
.smalltooltip {
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 80px;
}
.tooltipbuttons {
  position: absolute;
  padding-right: 15px;
  top: 0px;
  right: 0px;
}
.tooltiptext {
  /*avoid the button to overlap on some docstring*/
  padding-right: 30px;
}
.ipython_tooltip {
  max-width: 700px;
  /*fade-in animation when inserted*/
  -webkit-animation: fadeOut 400ms;
  -moz-animation: fadeOut 400ms;
  animation: fadeOut 400ms;
  -webkit-animation: fadeIn 400ms;
  -moz-animation: fadeIn 400ms;
  animation: fadeIn 400ms;
  vertical-align: middle;
  background-color: #f7f7f7;
  overflow: visible;
  border: #ababab 1px solid;
  outline: none;
  padding: 3px;
  margin: 0px;
  padding-left: 7px;
  font-family: monospace;
  min-height: 50px;
  -moz-box-shadow: 0px 6px 10px -1px #adadad;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  border-radius: 2px;
  position: absolute;
  z-index: 1000;
}
.ipython_tooltip a {
  float: right;
}
.ipython_tooltip .tooltiptext pre {
  border: 0;
  border-radius: 0;
  font-size: 100%;
  background-color: #f7f7f7;
}
.pretooltiparrow {
  left: 0px;
  margin: 0px;
  top: -16px;
  width: 40px;
  height: 16px;
  overflow: hidden;
  position: absolute;
}
.pretooltiparrow:before {
  background-color: #f7f7f7;
  border: 1px #ababab solid;
  z-index: 11;
  content: "";
  position: absolute;
  left: 15px;
  top: 10px;
  width: 25px;
  height: 25px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}
ul.typeahead-list i {
  margin-left: -10px;
  width: 18px;
}
ul.typeahead-list {
  max-height: 80vh;
  overflow: auto;
}
ul.typeahead-list > li > a {
  /** Firefox bug **/
  /* see https://github.com/jupyter/notebook/issues/559 */
  white-space: normal;
}
.cmd-palette .modal-body {
  padding: 7px;
}
.cmd-palette form {
  background: white;
}
.cmd-palette input {
  outline: none;
}
.no-shortcut {
  display: none;
}
.command-shortcut:before {
  content: "(command)";
  padding-right: 3px;
  color: #777777;
}
.edit-shortcut:before {
  content: "(edit)";
  padding-right: 3px;
  color: #777777;
}
#find-and-replace #replace-preview .match,
#find-and-replace #replace-preview .insert {
  background-color: #BBDEFB;
  border-color: #90CAF9;
  border-style: solid;
  border-width: 1px;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .match {
  background-color: #FFCDD2;
  border-color: #EF9A9A;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .insert {
  background-color: #C8E6C9;
  border-color: #A5D6A7;
  border-radius: 0px;
}
#find-and-replace #replace-preview {
  max-height: 60vh;
  overflow: auto;
}
#find-and-replace #replace-preview pre {
  padding: 5px 10px;
}
.terminal-app {
  background: #EEE;
}
.terminal-app #header {
  background: #fff;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.terminal-app .terminal {
  width: 100%;
  float: left;
  font-family: monospace;
  color: white;
  background: black;
  padding: 0.4em;
  border-radius: 2px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
}
.terminal-app .terminal,
.terminal-app .terminal dummy-screen {
  line-height: 1em;
  font-size: 14px;
}
.terminal-app .terminal .xterm-rows {
  padding: 10px;
}
.terminal-app .terminal-cursor {
  color: black;
  background: white;
}
.terminal-app #terminado-container {
  margin-top: 20px;
}
/*# sourceMappingURL=style.min.css.map */
    </style>
<style type="text/css">
    .highlight .hll { background-color: #ffffcc }
.highlight  { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0000FF } /* Name.Function.Magic */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
    </style>
<style type="text/css">
    
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }

.ansi-bold { font-weight: bold; }

    </style>


<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
body {
  overflow: visible;
  padding: 8px;
}

div#notebook {
  overflow: visible;
  border-top: none;
}@media print {
  div.cell {
    display: block;
    page-break-inside: avoid;
  } 
  div.output_wrapper { 
    display: block;
    page-break-inside: avoid; 
  }
  div.output { 
    display: block;
    page-break-inside: avoid; 
  }
}
</style>

<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">

<!-- Loading mathjax macro -->
<!-- Load mathjax -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>
    <!-- MathJax configuration -->
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        tex2jax: {
            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
            processEscapes: true,
            processEnvironments: true
        },
        // Center justify equations in code and markdown cells. Elsewhere
        // we use CSS to left justify single line equations in code cells.
        displayAlign: 'center',
        "HTML-CSS": {
            styles: {'.MathJax_Display': {"margin": 0}},
            linebreaks: { automatic: true }
        }
    });
    </script>
    <!-- End of mathjax configuration --></head>
<body>
  <div tabindex="-1" id="notebook" class="border-box-sizing">
    <div class="container" id="notebook-container">

<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Visualising-Data">Visualising Data<a class="anchor-link" href="#Visualising-Data">&#182;</a></h1><p>The purpose of scientific computation is insight not numbers: To understand the meaning of the (many) numbers we compute, we often need postprocessing, statistical analysis and graphical visualisation of our data. The following sections describe</p>
<ul>
<li><p>Matplotlib/Pylab — which allows us to generate high quality graphs of the type <em>y</em> = <em>f</em>(<em>x</em>) (and a bit more)</p>
</li>
<li><p>Visual Python — which is a very handy tool to quickly generate animations of time dependent processes taking place in 3d space.</p>
</li>
</ul>
<h2 id="Matplotlib-(Pylab)-&#8211;-plotting-y=f(x),-(and-a-bit-more)">Matplotlib (Pylab) &#8211; plotting y=f(x), (and a bit more)<a class="anchor-link" href="#Matplotlib-(Pylab)-&#8211;-plotting-y=f(x),-(and-a-bit-more)">&#182;</a></h2><p>The Python library <em>Matplotlib</em> is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments. Matplotlib tries to make easy things easy and hard things possible. You can generate plots, histograms, power spectra, bar charts, errorcharts, scatterplots, etc, with just a few lines of code.</p>
<p>For more detailed information, check these links</p>
<ul>
<li><p>A very nice introduction in the object oriented Matplotlib interface, and summary of all important ways of changing style, figure size, linewidth, etc. This is a useful reference:
<a href="http://nbviewer.ipython.org/urls/raw.github.com/jrjohansson/scientific-python-lectures/master/Lecture-4-Matplotlib.ipynb">http://nbviewer.ipython.org/urls/raw.github.com/jrjohansson/scientific-python-lectures/master/Lecture-4-Matplotlib.ipynb</a></p>
</li>
<li><p>Matplotlib tutorial</p>
</li>
<li><p>Matplotlib home page</p>
</li>
<li><p>List of simple screenshot examples <a href="http://matplotlib.sourceforge.net/users/screenshots.html">http://matplotlib.sourceforge.net/users/screenshots.html</a></p>
</li>
<li><p>Extended thumbnail gallery of examples <a href="http://matplotlib.sourceforge.net/gallery.html">http://matplotlib.sourceforge.net/gallery.html</a></p>
</li>
</ul>
<h3 id="Matplotlib-and-Pylab">Matplotlib and Pylab<a class="anchor-link" href="#Matplotlib-and-Pylab">&#182;</a></h3><p>Matplotlib as <em>an object oriented plotting library</em>. Pylab is an interface to the same set of functions that imitates the (state-driven) Matlab plotting interface.</p>
<p>Pylab is slightly more convenient to use for easy plots, and Matplotlib gives far more detailed control over how plots are created. If you use Matplotlib routinely to produce figures, you are well advised to learn about the object oriented matplotlib interface (instead of the pylab interface).</p>
<p>This chapter focusses on the Pylab interface.</p>
<p>An excellent introduction and overview of the Matplotlib plotting interface is available in<a href="http://nbviewer.ipython.org/urls/raw.github.com/jrjohansson/scientific-python-lectures/master/Lecture-4-Matplotlib.ipynb">http://nbviewer.ipython.org/urls/raw.github.com/jrjohansson/scientific-python-lectures/master/Lecture-4-Matplotlib.ipynb</a>.</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="First-example">First example<a class="anchor-link" href="#First-example">&#182;</a></h3><p>The recommended way of using Matplotlib in a simple example is shown here (let’s call this example 1a):</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[1]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">matplotlib</span> inline
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[2]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># example 1 a</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>                  <span class="c1"># get access to fast arrays</span>
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>   <span class="c1"># the plotting functions</span>

<span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="o">-</span><span class="mf">3.14</span><span class="p">,</span> <span class="mf">3.14</span><span class="p">,</span> <span class="mf">0.01</span><span class="p">)</span>    <span class="c1"># create x-data</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>                       <span class="c1"># compute y - data</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>                      <span class="c1"># create plot</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt output_prompt">Out[2]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>[&lt;matplotlib.lines.Line2D at 0x10e751d68&gt;]</pre>
</div>

</div>

<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="How-to-import-matplotlib,-pylab,-pyplot,-numpy-and-all-that">How to import matplotlib, pylab, pyplot, numpy and all that<a class="anchor-link" href="#How-to-import-matplotlib,-pylab,-pyplot,-numpy-and-all-that">&#182;</a></h3><p>The submodule <code>matplotlib.pyplot</code> provides an object oriented interface to the plotting library. Many of the examples in the matplotlib documentation follow the import convention to import <code>matplotlib.pyplot</code> as <code>plt</code> and <code>numpy</code> as <code>np</code>. It is of course entirely the user’s decision whether to import the <code>numpy</code> library under the name <code>np</code> (as often done in matplotlib examples) or <code>N</code> as done in this text (and in the early days when the predecessor of numpy was called “Numeric”) or any other name you like. Similarly, it is a matter of taste whether the plotting submodule (<code>matplotlib.pyplot</code>) is imported as <code>plt</code> as is done in the matplotlib documentation or <code>plot</code> (which could be argued is slightly clearer) etc.</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>As always a balance has to be struck between personal preferences and consistency with common practice in choosing these name. Consistency with common use is of course more important if the code is likely to be used by others or published.</p>
<p>Plotting nearly always needs arrays of numerical data and it is for this reason that the <code>numpy</code> module is used a lot: it provides fast and memory efficient array handling for Python (see <a href="14-numpy.html">chapter 14</a>).</p>
<p>We could thus also have written the example 1a above as in example 1b (which is identical in functionality to the example above and will create the same plot):</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[3]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">pylab</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">N</span>

<span class="n">x</span> <span class="o">=</span> <span class="n">N</span><span class="o">.</span><span class="n">arange</span> <span class="p">(</span><span class="o">-</span><span class="mf">3.14</span><span class="p">,</span> <span class="mf">3.14</span><span class="p">,</span> <span class="mf">0.01</span><span class="p">)</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">N</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>

<span class="n">pylab</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt output_prompt">Out[3]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>[&lt;matplotlib.lines.Line2D at 0x10ec7b5c0&gt;]</pre>
</div>

</div>

<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Because the <code>numpy.arange</code> and <code>numpy.sin</code> objects have already been imported into the (convenience) <code>pylab</code> namespace, we could also write it as example 1c:</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[4]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#example 1c</span>
<span class="kn">import</span> <span class="nn">pylab</span> <span class="k">as</span> <span class="nn">p</span>

<span class="n">x</span> <span class="o">=</span> <span class="n">p</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="o">-</span><span class="mf">3.14</span><span class="p">,</span> <span class="mf">3.14</span><span class="p">,</span> <span class="mf">0.01</span><span class="p">)</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">p</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>

<span class="n">p</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt output_prompt">Out[4]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>[&lt;matplotlib.lines.Line2D at 0x10ed7e4a8&gt;]</pre>
</div>

</div>

<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>If we really want to cut down on characters to type, we could also important the whole functionality from the <code>pylab</code> convenience module, and rewrite the code as example 1d:</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#example 1 d</span>
<span class="kn">from</span> <span class="nn">pylab</span> <span class="k">import</span> <span class="o">*</span>  <span class="c1"># not generally recommended</span>
                     <span class="c1"># okay for interactive testing</span>

<span class="n">x</span> <span class="o">=</span> <span class="n">arange</span><span class="p">(</span><span class="o">-</span><span class="mf">3.14</span><span class="p">,</span> <span class="mf">3.14</span><span class="p">,</span> <span class="mf">0.01</span><span class="p">)</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
<span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
<span class="n">show</span><span class="p">()</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>This can be extremely convenient, but comes with a big health warning:</p>
<ul>
<li><p>While using <code>from pylab import *</code> is acceptable at the command prompt to interactively create plots and analyse data, this should never be used in any plotting scripts.</p>
</li>
<li><p>The pylab toplevel provides over 800 different objects which are all imported into the global name space when running <code>from pylab import *</code>. This is not good practice, and could conflict with other objects that exist already or are created later.</p>
</li>
<li><p>As a rule of thumb: do never use <code>from somewhere import *</code> in programs we save. This may be okay at the command prompt.</p>
</li>
</ul>
<p>In the following examples, we usually use the <code>pylab</code> interface to the plotting routines but this is purely a matter of taste and habit and by no means the only way (note that the Matplotlib authors recommend the import style as in example 1a, see also this <a href="http://matplotlib.sourceforge.net/faq">Matplot FAQ entry</a>: <a href="http://matplotlib.sourceforge.net/faq/usage_faq.html#matplotlib-pylab-and-pyplot-how-are-they-related">Matplotlib, pylab, and pyplot: how are they related?</a>)</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="IPython&#8217;s-inline-mode">IPython&#8217;s inline mode<a class="anchor-link" href="#IPython&#8217;s-inline-mode">&#182;</a></h3><p>Within the Jupyter Notebook or Qtconsole (see the <a href="11-python-shells.html">Python shells notebook</a>) we can use the <code>%matplotlib inline</code> magic command to make further plots appear within our console or notebook. To force pop up windows instead, use <code>%matplotlib qt</code>.</p>
<p>There is also the <code>%pylab</code> magic, which will not only switch to inline plotting but also automatically execute <code>from pylab import *</code>.</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Saving-the-figure-to-a-file">Saving the figure to a file<a class="anchor-link" href="#Saving-the-figure-to-a-file">&#182;</a></h3><p>Once you have created the figure (using the <code>plot</code> command) and added any labels, legends etc, you have two options to save the plot.</p>
<ol>
<li><p>You can display the figure (using <code>show</code>) and <em>interactively</em> save it by clicking on the disk icon.</p>
</li>
<li><p>You can (without displaying the figure) save it directly from your Python code. The command to use is <code>savefig</code>. The format is determined by the extension of the file name you provide. Here is an example (<code>pylabsavefig.py</code>) which saves the plot shown in Figure [fig:pylab1</p>
</li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">pylab</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">N</span>

<span class="n">x</span> <span class="o">=</span> <span class="n">N</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="o">-</span><span class="mf">3.14</span><span class="p">,</span> <span class="mf">3.14</span><span class="p">,</span> <span class="mf">0.01</span><span class="p">)</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">N</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>

<span class="n">pylab</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">&#39;sin(x)&#39;</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="s1">&#39;myplot.png&#39;</span><span class="p">)</span>  <span class="c1"># saves png file</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="s1">&#39;myplot.eps&#39;</span><span class="p">)</span>  <span class="c1"># saves eps file</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="s1">&#39;myplot.pdf&#39;</span><span class="p">)</span>  <span class="c1"># saves pdf file</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>A note on file formats: Choose the <code>png</code> file format if you plan to include your graph in a word document or on a webpage. Choose the <code>eps</code> or <code>pdf</code> file format if you plan to include the figure in a Latex document – depending on whether you want to compile it using <code>latex</code> (needs <code>eps</code>) or pdflatex (can use <code>pdf</code> [better] or <code>png</code>). If the version of MS Word (or other text processing software you use) can handle <code>pdf</code> files, it is better to use <code>pdf</code> than <code>png</code>.</p>
<p>Both <code>pdf</code> and <code>eps</code> are vector file formats which means that one can zoom into the image without loosing quality (lines will still be sharp). File formats such as <code>png</code> (and <code>jpg</code>, <code>gif</code>, <code>tif</code>, <code>bmp</code>) save the image in form of a bitmap (i.e. a matrix of colour values) and will appear blurry or pixelated when zooming in (or when printed in high resolution).</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Interactive-mode">Interactive mode<a class="anchor-link" href="#Interactive-mode">&#182;</a></h3><p>Matplotlib can be run in two modes:</p>
<ul>
<li><p>non-interactive (this is the default)</p>
</li>
<li><p>interactive.</p>
</li>
</ul>
<p>In non-interactive mode, no plots will be displayed until the <code>show()</code> command has been issued. In this mode, the <code>show()</code> command should be the last statement of your program.</p>
<p>In interactive mode, plots will be immediately displayed after the plot command has been issued.</p>
<p>One can switch the interactive mode on using <code>pylab.ion()</code> and off using <code>pylab.ioff()</code>. IPython's <code>%matplotlib</code> magic also enables interactive mode.</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Fine-tuning-your-plot">Fine tuning your plot<a class="anchor-link" href="#Fine-tuning-your-plot">&#182;</a></h3><p>Matplotlib allows us to fine tune our plots in great detail. Here is an example:</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[7]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">pylab</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">N</span>

<span class="n">x</span> <span class="o">=</span> <span class="n">N</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="o">-</span><span class="mf">3.14</span><span class="p">,</span> <span class="mf">3.14</span><span class="p">,</span> <span class="mf">0.01</span><span class="p">)</span>
<span class="n">y1</span> <span class="o">=</span> <span class="n">N</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
<span class="n">y2</span> <span class="o">=</span> <span class="n">N</span><span class="o">.</span><span class="n">cos</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span> <span class="o">=</span><span class="p">(</span><span class="mi">5</span> <span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y1</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">&#39;sin(x)&#39;</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y2</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">&#39;cos(x)&#39;</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">grid</span><span class="p">()</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;x&#39;</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">&#39;This is the title of the graph&#39;</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt output_prompt">Out[7]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>&lt;matplotlib.text.Text at 0x10f445400&gt;</pre>
</div>

</div>

<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
TkSuQmCC
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>showing some other useful commands:</p>
<ul>
<li><p><code>figure(figsize=(5,5))</code> sets the figure size to 5inch by 5inch</p>
</li>
<li><p><code>plot(x,y1,label=’sin(x)’)</code> The “label” keyword defines the name of this line. The line label will be shown in the legend if the <code>legend()</code> command is used later.</p>
</li>
<li><p>Note that calling the <code>plot</code> command repeatedly, allows you to overlay a number of curves.</p>
</li>
<li><p><code>axis([-2,2,-1,1])</code> This fixes the displayed area to go from xmin=-2 to xmax=2 in x-direction, and from ymin=-1 to ymax=1 in y-direction</p>
</li>
<li><p><code>legend()</code> This command will display a legend with the labels as defined in the plot command. Try <code>help(pylab.legend)</code> to learn more about the placement of the legend.</p>
</li>
<li><p><code>grid()</code> This command will display a grid on the backdrop.</p>
</li>
<li><p><code>xlabel(’...’)</code> and <code>ylabel(’...’)</code> allow labelling the axes.</p>
</li>
</ul>
<p>Note further than you can chose different line styles, line thicknesses, symbols and colours for the data to be plotted. (The syntax is very similar to MATLAB.) For example:</p>
<ul>
<li><p><code>plot(x,y,’og’)</code> will plot circles (<code>o</code>) in green (<code>g</code>)</p>
</li>
<li><p><code>plot(x,y,’-r’)</code> will plot a line (<code>-</code>) in red (<code>r</code>)</p>
</li>
<li><p><code>plot(x,y,’-b’,linewidth=2)</code> will plot a blue line (<code>b</code>) with two two pixel thickness <code>linewidth=2</code> which is twice as wide as the default.</p>
</li>
</ul>
<p>The full list of options can be found when typing <code>help(pylab.plot)</code> at the Python prompt. Because this documentation is so useful, we repeat parts of it here:</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">

<pre><code>plot(*args, **kwargs)
    Plot lines and/or markers to the
    :class:`~matplotlib.axes.Axes`.  *args* is a variable length
    argument, allowing for multiple *x*, *y* pairs with an
    optional format string.  For example, each of the following is
    legal::

        plot(x, y)         # plot x and y using default line style and color
        plot(x, y, 'bo')   # plot x and y using blue circle markers
        plot(y)            # plot y using x as index array 0..N-1
        plot(y, 'r+')      # ditto, but with red plusses

    If *x* and/or *y* is 2-dimensional, then the corresponding columns
    will be plotted.

    An arbitrary number of *x*, *y*, *fmt* groups can be
    specified, as in::

        a.plot(x1, y1, 'g^', x2, y2, 'g-')

    Return value is a list of lines that were added.

    The following format string characters are accepted to control
    the line style or marker:

    ================    ===============================
    character           description
    ================    ===============================
    '-'                 solid line style
    '--'                dashed line style
    '-.'                dash-dot line style
    ':'                 dotted line style
    '.'                 point marker
    ','                 pixel marker
    'o'                 circle marker
    'v'                 triangle_down marker
    '^'                 triangle_up marker
    '&lt;'                 triangle_left marker
    '&gt;'                 triangle_right marker
    '1'                 tri_down marker
    '2'                 tri_up marker
    '3'                 tri_left marker
    '4'                 tri_right marker
    's'                 square marker
    'p'                 pentagon marker
    '*'                 star marker
    'h'                 hexagon1 marker
    'H'                 hexagon2 marker
    '+'                 plus marker
    'x'                 x marker
    'D'                 diamond marker
    'd'                 thin_diamond marker
    '|'                 vline marker
    '_'                 hline marker
    ================    ===============================

The following color abbreviations are supported:

==========  ========
character   color
==========  ========
'b'         blue
'g'         green
'r'         red
'c'         cyan
'm'         magenta
'y'         yellow
'k'         black
'w'         white
==========  ========

In addition, you can specify colors in many weird and
wonderful ways, including full names (``'green'``), hex
strings (``'#008000'``), RGB or RGBA tuples (``(0,1,0,1)``) or
grayscale intensities as a string (``'0.8'``).  Of these, the
string specifications can be used in place of a ``fmt`` group,
but the tuple forms can be used only as ``kwargs``.

Line styles and colors are combined in a single format string, as in
``'bo'`` for blue circles.

The *kwargs* can be used to set line properties (any property that has
a ``set_*`` method).  You can use this to set a line label (for auto
legends), linewidth, anitialising, marker face color, etc.  Here is an
example::

    plot([1,2,3], [1,2,3], 'go-', label='line 1', linewidth=2)
    plot([1,2,3], [1,4,9], 'rs',  label='line 2')
    axis([0, 4, 0, 10])
    legend()

If you make multiple lines with one plot command, the kwargs
apply to all those lines, e.g.::

    plot(x1, y1, x2, y2, antialised=False)

Neither line will be antialiased.

You do not need to use format strings, which are just
abbreviations.  All of the line properties can be controlled
by keyword arguments.  For example, you can set the color,
marker, linestyle, and markercolor with::

    plot(x, y, color='green', linestyle='dashed', marker='o',
         markerfacecolor='blue', markersize=12).  See
         :class:`~matplotlib.lines.Line2D` for details.</code></pre>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>The use of different line styles and thicknesses is particularly useful when colour cannot be used to distinguish lines (for example when graph will be used in document that is to be printed in black and white only).</p>
<h3 id="Plotting-more-than-one-curve">Plotting more than one curve<a class="anchor-link" href="#Plotting-more-than-one-curve">&#182;</a></h3><p>There are three different methods to display more than one curve.</p>
<h4 id="Two-(or-more)-curves-in-one-graph">Two (or more) curves in one graph<a class="anchor-link" href="#Two-(or-more)-curves-in-one-graph">&#182;</a></h4><p>By calling the <code>plot</code> command repeatedly, more than one curve can be drawn in the same graph. Example:</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[8]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">N</span>
<span class="n">t</span> <span class="o">=</span> <span class="n">N</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">N</span><span class="o">.</span><span class="n">pi</span><span class="p">,</span><span class="mf">0.01</span><span class="p">)</span>

<span class="kn">import</span> <span class="nn">pylab</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">t</span><span class="p">,</span><span class="n">N</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">t</span><span class="p">),</span><span class="n">label</span><span class="o">=</span><span class="s1">&#39;sin(t)&#39;</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">t</span><span class="p">,</span><span class="n">N</span><span class="o">.</span><span class="n">cos</span><span class="p">(</span><span class="n">t</span><span class="p">),</span><span class="n">label</span><span class="o">=</span><span class="s1">&#39;cos(t)&#39;</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt output_prompt">Out[8]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>&lt;matplotlib.legend.Legend at 0x10ee9e8d0&gt;</pre>
</div>

</div>

<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
VWuFzPs2wgAAAABJRU5ErkJggg==
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="Two-(or-more-graphs)-in-one-figure-window">Two (or more graphs) in one figure window<a class="anchor-link" href="#Two-(or-more-graphs)-in-one-figure-window">&#182;</a></h4><p>The <code>pylab.subplot</code> command allows to arrange several graphs within one figure window. The general syntax is</p>

<pre><code>subplot(numRows, numCols, plotNum)</code></pre>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>For example, to arrange 4 graphs in a 2-by-2 matrix, and to select the first graph for the next plot command, one can use:</p>
<div class="highlight"><pre><span></span><span class="n">subplot</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Here is a complete example plotting the sine and cosine curves in two graphs that are aligned underneath each other within the same window:</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[9]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">N</span>
<span class="n">t</span> <span class="o">=</span> <span class="n">N</span><span class="o">.</span><span class="n">arange</span> <span class="p">(</span><span class="mi">0</span> <span class="p">,</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">N</span> <span class="o">.</span> <span class="n">pi</span> <span class="p">,</span> <span class="mf">0.01</span><span class="p">)</span>

<span class="kn">import</span> <span class="nn">pylab</span>

<span class="n">pylab</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="n">N</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">t</span><span class="p">))</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;t&#39;</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;sin(t)&#39;</span><span class="p">)</span>

<span class="n">pylab</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="n">N</span><span class="o">.</span><span class="n">cos</span><span class="p">(</span><span class="n">t</span><span class="p">))</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;t&#39;</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;cos(t)&#39;</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt output_prompt">Out[9]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>&lt;matplotlib.text.Text at 0x10f0c7780&gt;</pre>
</div>

</div>

<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
AAAASUVORK5CYII=
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="Two-(or-more)-figure-windows">Two (or more) figure windows<a class="anchor-link" href="#Two-(or-more)-figure-windows">&#182;</a></h4>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[10]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">pylab</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="s1">&#39;o&#39;</span><span class="p">)</span>

<span class="n">pylab</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span><span class="s1">&#39;x&#39;</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt output_prompt">Out[10]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>[&lt;matplotlib.lines.Line2D at 0x10f61d3c8&gt;]</pre>
</div>

</div>

<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
AAAAAElFTkSuQmCC
"
>
</div>

</div>

<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
EjHoS1KJ/D8jUyUh+X6iJgAAAABJRU5ErkJggg==
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Note that you can use <code>pylab.close()</code> to close one, some or all figure windows (use <code>help(pylab.close)</code> to learn more).</p>
<h3 id="Histograms">Histograms<a class="anchor-link" href="#Histograms">&#182;</a></h3><embed src="code/pylab/pylabhistogram.pdf" style="width:100.0%" />

<p>The program below demonstrates how to create histograms from stastical data in Matplotlib. The resulting plot is show in figure</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[11]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#modified version of</span>
<span class="c1">#http://matplotlib.sourceforge.net/plot_directive/mpl_examples/...</span>
<span class="c1">#                                 /pylab_examples/histogram_demo.py</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">matplotlib.mlab</span> <span class="k">as</span> <span class="nn">mlab</span>
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>

<span class="c1"># create data</span>
<span class="n">mu</span><span class="p">,</span> <span class="n">sigma</span> <span class="o">=</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">15</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">mu</span> <span class="o">+</span> <span class="n">sigma</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">10000</span><span class="p">)</span>

<span class="c1"># histogram of the data</span>
<span class="n">n</span><span class="p">,</span> <span class="n">bins</span><span class="p">,</span> <span class="n">patches</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="mi">50</span><span class="p">,</span> <span class="n">normed</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                            <span class="n">facecolor</span><span class="o">=</span><span class="s1">&#39;green&#39;</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.75</span><span class="p">)</span>

<span class="c1">#some finetuning of plot</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;Smarts&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;Probability&#39;</span><span class="p">)</span>
<span class="c1">#Can use Latex strings for labels and titles:</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;$\mathrm{Histogram\ of\ IQ:}\ \mu=100,\ \sigma=15$&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="mi">40</span><span class="p">,</span> <span class="mi">160</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mf">0.03</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>


<span class="c1"># add a &#39;best fit&#39; line</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">mlab</span><span class="o">.</span><span class="n">normpdf</span><span class="p">(</span><span class="n">bins</span><span class="p">,</span> <span class="n">mu</span><span class="p">,</span> <span class="n">sigma</span><span class="p">)</span>
<span class="n">l</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">bins</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="s1">&#39;r--&#39;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>

<span class="c1">#save to file</span>
<span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="s1">&#39;pylabhistogram.pdf&#39;</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
/wGJsWFUZgJIVAAAAABJRU5ErkJggg==
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Do not try to understand every single command in this file: some are rather specialised and have not been covered in this text. The intention is to provide a few examples to show what can – in principle – be done with Matplotlib. If you need a plot like this, the expectation is that you will need to experiment and possibly learn a bit more about Matplotlib.</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Visualising-matrix-data">Visualising matrix data<a class="anchor-link" href="#Visualising-matrix-data">&#182;</a></h3><p>The program below demonstrates how to create a bitmap-plot of the entries of a matrix.</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[12]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">matplotlib.mlab</span> <span class="k">as</span> <span class="nn">mlab</span>    <span class="c1"># Matlab compatibility commands</span>
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>

<span class="c1">#create matrix Z that contains some interesting data</span>
<span class="n">delta</span> <span class="o">=</span> <span class="mf">0.1</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="o">-</span><span class="mf">3.0</span><span class="p">,</span> <span class="mf">3.0</span><span class="p">,</span> <span class="n">delta</span><span class="p">)</span>
<span class="n">X</span><span class="p">,</span> <span class="n">Y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">meshgrid</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
<span class="n">Z</span> <span class="o">=</span> <span class="n">mlab</span><span class="o">.</span><span class="n">bivariate_normal</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="mf">3.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">)</span>

<span class="c1">#display the &#39;raw&#39; matrix data of Z in one figure</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">Z</span><span class="p">,</span> <span class="n">interpolation</span><span class="o">=</span><span class="s1">&#39;nearest&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;imshow example 1a: no interpolation&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="s2">&quot;pylabimshow1a.pdf&quot;</span><span class="p">)</span>

<span class="c1">#display the data interpolated in other figure</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
<span class="n">im</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">Z</span><span class="p">,</span> <span class="n">interpolation</span><span class="o">=</span><span class="s1">&#39;bilinear&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;imshow example 1b: with bi-linear interpolation&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="s2">&quot;pylabimshow1b.pdf&quot;</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
TkSuQmCC
"
>
</div>

</div>

<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
AAALEgAACxIB0t1+/AAAIABJREFUeJzsvXv07dpV3/edS/vcaxs/uA7xNWDnGhNeJaEQiAevxBcK
FCjEoSNxAwUMDgllUEIKAdswgoEkgN2OAikNJAQYtgnFhpYYUlpwwNemPA0pCSkPA+YaY/sexw8M
5uLrs7Vm/1hrSVNTcz2krf377X285xk6ktZL+klaH33n1NoSMTMudrGLXezczF33DlzsYhe72Bq7
wOtiF7vYWdoFXhe72MXO0i7wutjFLnaWdoHXxS52sbO0C7wudrGLnaVV4UVE/5GI/uqWGyWiZxDR
z2zZ5u1gxzouRHQPEXkiOurNioh+nIg+r5D/fUT0jY1tFfeZiJ5DRP+iUP/lRPTMuPw5RPR/t2z3
2EZE30lEX3vd+9FiS85Xpv4fE9GTttujqe1qBZj5Lxxp25cBZratOi5E9DcB/H0AHw7gF5n5E7do
d4kx86eL/XkGgC9i5r9ySJOFbX3zgv36AQA/cMB+bGbM/CWtZYno+wC8jpm/7oi7tIkR0csBvIiZ
vzelMfOjjrnNKrwudjb2FgDfCuCDAWhwXYcR3s1vUETUMXP/7rr9Y1uL2/h7RPSJcfm5RPQSInoR
Ef0REf17IvoAIno2Ed0kotcS0SeJul9ARL8by/4uEX32tGn6H4norTHvU0XGexPRS4noLUT0aiL6
oph+JxE9SESPjetfS0S3iOiRcf0bieh/zvwdjyaif0lEbyCi1xHRPyIiinn/jIh+WJR9HhG9LC6/
JxH9GBG9Ke7PjxHR+4qyL49t/WyUyS8loscS0fcT0duJ6BeJ6M+J8p6Iviz+zW8ioucXjv0HE9FP
xu3+RlRXpjHzTzPzDwN4Y645AH+biF4fp6/MtaX24UlE9Dax/t1EdFOsv5CI/p44Fs8kog8G8J0A
PiYek7eKJh9LRP8mXhM/T0TvV9p8bp/jtfiixr9h4o7Hc/DF8dp6KxF9hyr/TCL69Xjc/y91/r6N
iH4/nttXEdHHq336odg//hDAM4x9GVwxInpqvBa/Ivaf1xPRF8S8vwPgvwXw1fFYvTSmvzcR/XC8
dn6XiL6stH2R9oOxnV8mog8TdT44nre3EdGvEdFnZo6h1Q/eJ+b9YwB/BcB3xG38U3GcnxyXHx2v
lTdRYMrXirafQUQ/QxkeZI2ZixOA3wPwiXH5uQAeBPBJCOB7AYDXAHgOgA7AFwF4TSz7CABvB/Dn
4/rdAD4kLj8DwLsAPBPhAv3vALxebPOVAP4XADcA/OcA3gTg3ph3H4DPiss/AeC3AfyXcf0VAJ6W
+Tt+BMA/A/AwAO8F4BcA/J2Y93AAvwng8+NJeBOA9455jwXwWQDuBPAeAF4M4EdEuy8H8GoATwLw
KAD/X2zrE8Qx+h5R3gP4KQCPAfAEAL8F4JniuLxSHL/fj/tE4jh8cOV8/W0AP63S7onb/Vfx7/8L
sa10Xj8OwFsLbd4P4CPi8m8C+B0AHxTXXwvgw8SxmP0top3vA/CfAHxkPDbfD+AHMtus7fNzAbyw
sM/ZfYnt/mg8X0+M7X5KzHtaPJ8fGPfxawD8rKj7OQDeM+b9Dwg3izvEPj0E4DPj+p3Gfn0fgG+M
y08FcCvW6wB8GoA/AfAYXTauE4BfBvC1sfyT4rn45Nz2RdpnxTpfidBnOwTP67cBPCsufwKAPwLw
Aca+tvSDZ6q/tQfw5Lj8QoQ++Ih4bn8LwBeK8/MQMjzInuMV8PoJkfcZ8Y+luP7IeGE8Ou7kW+Mf
/DDV5jMAvFqsPzzWexxCh74F4BEi/5sAfG9c/kYA3xYP/hsBfFnMvxMBrHcZf8PjALxTXkwA/hZE
JwfwlxFcr98D8PTC8fhwAG9RJ+05Yv1/AvB/qmP071TH+WSx/iUAXmbA6+kAXqG2/V0A/uEB8PoA
kfY8AN9dO//iwvv7CDeg3wTwLQD+LkLneaso1wKvfyHWPw3Ar1fgZe4zDofXx4j1FwP46rj844id
Kq47BKA8MbOdtwL4i2Kf7qscSw2vPwHgRP5NAE/RZeP6UwDcr9p7NuLN0dp+TPs5sU4AXo9ww/p4
AG9Q5X8AwNdZ22/oBxpeHsCT4zF8CPGGF/P+brpOYfOgB/C40rFc8/Tpplj+UwBv5rjFuA4Aj2Tm
BwH8Nwid841RZn6QqPtAWmDmoR6A90HoEA+Ksq8FkFy1VyDcIf4SgP8A4GUA7gXw0QB+m5nfhrnd
g6Di3hhl6dsQQPBeYh9ehXBHIgA/lNKJ6OFE9M+J6P4oxV8B4D2JgsuZOSZ6/ZFqf/5A/W3vk9nn
j477m/b5cwA83ijbYty4XcvSMf+rcfk+hGP+VABLn44+IJYfxPzYSGvaZwpP8P44uizPbtwPeY7k
ftwD4NvTcUe4oTHi9UdE/yC6lG+L5+TRENcRgNc1bj/ZW5jZZ/ZF2z0A3lddE89BuDmXtj+kxb76
eoTj+D5GednXBmvsBzl7LwRl9/uF7WgeEMrXxnHHeTHzy5j5UxA63G8ByD7aFvYGhLjIe4i0P4dw
wAHg5wB8EIKiewUz/2bM/3SEA2rZ6xCU159h5scy813M/J7MLH3/LwVwR9z+s0TdrwTwAQD+MjO/
J0IHBsLBXWtPVH/bGzL7fF/c37TPj2bmLz3ydi17BYI7/dS4/LMId+60bhln0pdadZ+Z+UuY+VHx
+HzLgdt7HYAvVsf9kcz8CzG+9VUA/kZMvwvR85C7c+D2pem2XocQlpH79hhm/sxCHUAcwwibJyAc
xzcgHFNpsq9J+wco94PS3/1mBG/qHpF2T2Y7zXY0eBHR44jorxHRIxB2/B0IMrJozPwHCID6ZgoB
+g9DcIVeFPP/FMCvAPhSjB3n5xD8ZLMjMfMDAH4SwLcS0aMo2JMpjl8jog8E8I8QAqSfjxAkTWB7
FIJ6+iMKDwq+ftmRMO2rYgD0iQC+HMAPGmX+DYAPJKLPJaIdEd0goo+iEAyfGRE5IroTQWF28djJ
p8kE4B/GO+iHAvjCzHZnxsy/g3AMPhfhhvHHCMrlv0YeXjcBPIGIbrRsI2Or9/kA+y4AX0NE/xkA
ENFjiOhvxLxHIVzLbyGiO4jo62LasewmgtuV7JcA/DERfTURPYyIOiL6UCL6qEo7H0lEf52IOoQ4
3TsRYr6/COBPYns7IroXIczxvxltPBLlfqD3dbCoLF8C4J8Q0SOJ6J64H00PXHLWAq+ld5JU3gH4
CgS6vhmB1KUxLnI7nw3g/RDuDP87Qpzn5SL/FQgxr18S649ECPTn7PMRlNWvI8QpfgjA4+MJfRGA
b2bm/xg76tcAeFHseN+GEL97MwIkf7yw3632UgQA/zsAPwbge3UBZn4HgE9BiM2lu+S3xL/Bss9D
uLj+V4RYxoOYKl1GOE6/g+BqP5+ZfwoAiOjjieiPKvv8CoQQwevFOuLfILeR7KcRHl48QERvqrSd
s+w+N9ZtzRvWmflfIxznH4zu0X8AkJ58/UScXo0QG30Qy93Emsl9+x4AHxpdxP8jQuAzEOJNv4fw
oOG7EVzXkr0UIYTzNoQb9Gcxc8/MtwB8JoLX8mYA3wHg85j5t402av3g2wH8zfgk8tuMv+XvIRyv
1yD00+9n5u8r7HO1X6VA+8WuyIjIIzyBfc1178vFbn8joucCeH9m/vzr3pet7fLbxotd7GJnadcK
LyL6VCL6TQqDBZ9Vr3Fb2EXqXuxiG9i1uY0UfnD7agD/BUI851UA/lZ8enixi13sYkW7TuX1FIRx
Wa+NgcMfRBjdfLGLXexiVbvOH2a/L6ZPav4AAWgTI6KLm3Wxi12TMfMh4xmPamfyVomnIvy87kli
OgW7D2Gg+SnZfRh/Vkk4bCztlvZTCBGC6zRW08txmufv3mva9v1xSpYbwncadp3wej2mo3ufgOyI
23ux/UklNV/bxqk9sG0F1lVD7apBmhPspJZP8fwdsk8JzGvsSZgKgwu8cvYqAH8+jrZ9I8JgzM8u
V9natuhQp6JspNX+ri3Avcauanu1zqsBdmq2xT7d/tGWa4MXM/dE9N8j/GzHIfwy/jfyNZ604dZJ
TWvtyQfWP4a17tNVK6H3v+LtAeUOTDjv81ez2x9eJz/CPgTsv37rVrENvK7LDlUO5/y310y6TWt/
2ZZbP3XTMb1D7esvAfvDbevjZ7V3Xa7UIbYWQOf4t7aafPv0mg4sO/45HB/9t57DPm9jF3hN1s9J
jaxVT+fy9x1ih7yhZkvlclUmwcUYr4tz+huW25nA6yqeCJ2bKyWHQpzLPp+6JWhV39x0opbAlez2
vi7OBF5bnYRcO1cJgS22off39r5Ir94ctlMtV6F+ksrKbev2VGDvRvCqAeqqwLUVcC7gOo5t5W7J
WNQx4VF6kelV7cP12LsJvFqfLh4bBFsrvAu4trUSCJbaVQb+tbuo887VDS7bbQovq/wWP5fZCqJW
WxcQnbdZwyy2UDwt9UvXjkfeDT5vNXYbwavkRh36NPEYrt7tEljd6tgcMrzhVEz+DbU41Np2l1oC
Vy0edn7H/Uzg1fK0sRVeS21LV0/vx7nHrbYa7KtjM+fXkYLpv2MrN1S2t6atWlys5Haerp0JvFqV
1zGeGqb2ktu5pR1rn6/Kttz/22GYwjHiXIeOmi/tx9Yj8q/WzgRercrrWPDa8vUy2l08Friu8unp
lvDacphCbXvHaFODYIvt+Ezbh5h2bS/wOpJ1jeWO4ZbJzrnFYNmrch2vyiU9htt4TDtWjMf6G7aK
dyXIHKpKrZjcVkNDrt7OBF6t0DiGqtnSbbSeNh5LdV2lO7qli3RsO6arpBXXVhBLymsL0Mi/fcuh
IVdvtxm8km3ZebdyG68SKJefDuVNxtaO2Wm3hCRh6jpuvV/neY2cCbxa3UZpS2GRK9PazpJtWAps
S9s6Tnc7WQLXMWJrlvJq3UapnIwFHjJe67wD9NrOBF7HVl41mJTaWQIIy2U8BmCO+YT03E2Ca8sO
XIp5tWynVLY1r3U7x1adV2NnAq9jK69D1NVaFaW3ufUT0gu8bEsdd+shGVrVLIFDrU5NlbVu89Dx
YqdlZwKvYyqvQyBySL00XwqYJUpyC1f3HK3UMZPqaoXXkk6u41KH1G01Ca7a33RxG6/BLHjpJ4tW
fuuTPauzt3bsJbGl3NPQQ2JyubK1tm9XcCUrqZgt41G1tltduSWubC62lrvJtw7j0O2etp0JvHJu
Y0vnbI0vaXAtjZe1qjyr/aXB/kPKWg8NbjdrdcNaQbEmZrUEkEtdP6v9Flhb+5krf/p2JvDKKa81
rmHNBV3qRm5RdikkW60E6ts1HtYCgjVKqqXs0v3YouySeNiW+3H9dibwspRXDRpLXTSZrl3BWtxo
CbzWDmFYG18rtXNqH1zdwg4JnNfaWlq3NY61FLhWuzUlpeNhObfxAq+NzdrNVnhZ7mCubK7dmht2
LHhZ+5Xbj1zd2j6vsatSbGs6UGtcZ6nLuKQesOz3iDVo6P1wmfRa2zDmS/bjtOw2h9cSAMk6VtoW
4FqieNbExZbs1xoArd2fNdbSMWv1S+0u6aC5eFatTk71lMpbZfWx0IqrRbHlYmWt+3B6dpvDS8d1
Sh05F4cqbWepK7fkZzuHuInH+nnQVq5rix1LBSxx5w7ZJwmClu2U9smCSivAdFpuO7KN8wgnnAm8
Uswr596V8lrjVrkAtuXqlfbDqp/br9o+LQFF7e9vrdtS9qrh1Vp+abstMaOWutZ+LN1OqWzJBW0F
qtWW1Y5ePl07E3il3cy5dC15rTGgnLqScGttt7Yfa/fJKltqv7Vui10FuIDlLuOaWNbSeFZLbArI
g6AGvdz+HAIv3a6Ml5X2+fTtTODVId+Zl4Cs5GK2wisHhyXtWvul6wG2GkzrrNJa/kZdr7QPlrXs
yxZ5VgctWQ0O1vZqCsmqV1NSJbXVqtis8pbb2NJ2br9LwDoPcAFXBC8i+h4AnwHgJjN/WEy7C8CL
AdwD4H4AT2fmt5d3sxTLaQFQgtBsDxfUXaqIatvNPX3ccjs108rynKzVbarVPfSnNamNmjpqDd5r
tbUWXmvrnr4R8/F3mog+HsA7ALxQwOt5AN7CzM8nomcBuIuZn23UZeDnsayja5WTUzotyqwErlxn
r7W7RhHWbElZq57crxV2KPcOugwPcXmWdN4W9yy3L7X8XFseywC0ZJsl4ALAR4GZT/aOdiXKi5n/
HyK6RyU/DcBT4/ILANwHYAavYDcwh4i2mmtXW94KXjVAWmktEKzZIQA6oO4G3BtsNcAOcXmW1C2V
zbliNVetBYRLYl6l7Vtu5Pkqr+uMeT2OmW8CADM/QESPyxdthVcONFB1LAi1QrEFdK3bhVHG2n6r
HUqQlfXXCL6crepDh3a8JfVLZXOg0monzXPDKLaAVwmcF3htbYWjJ+GVYKLNAkxunFcOdEAZSLXx
U7V9rIDvmAL9GG3XROgSO3Y/OmbfZGsDpT+oBo4lkMmV8SJfmnZDL/BaYzeJ6G5mvklEjwfwpnzR
74xzAvDRAD5WrKd5SU3VVBeMcrq8rotyeaJ5ERJ1a57ikrwWEdcKl1ZBqMtsAS8536psrZwlilrr
V9ulabmhPAFcgkZJKS0tq/9ADSy5/vNxOg+7koA9ABDRkwD8GDP/xbj+PABvZebn1QP29yMPqBZw
5SBVAxGM/ErvpvgfYQ4wUvm6YknBNDJzVd0lbVllW9st2bHgZYV8WttaVJeNPJ5zZJJeo2Juniuv
d9Zatp5i5sD3vicdsL+qp40/AOBeAH8GwE0AzwXwrwH8EIAnAngtwlCJPzTqMvB6tAOqJW+tvGj6
Y+tctZqU9cx8Y9etvFp+df8Xlr8OW+Ji5kRISzuteTl4lcRQgldz91sjM0suZUv63Rd4HWIBXv8p
ramppK6MPLJ6pFJHsx1YkL5UHJbqaiu9jKIGxxqM1pY9tpWERqsokeV1v9Z5h8CtVLckdnL73iKy
zHT1R7L+Q1uVFwN47EnD65QC9gW7I85177TWxTKJdcuFk/NS3pIy1u61qrClgCrltfwt+m+SbeXK
ltK3thavqtWjsuC1FZxa2q6pMGt/rfmiMjSqwsQg1q/TyR3M0xY1wFnCC2o5kzYsGss1/hV42FRW
57fA6xBV1gpHy0rAayl7LFsLppayss6Wysvq/zmxU/sbalwx19nIjwCjuJzKmDuhl0/bzhheDdYK
kLXTkpETpXo1eFltLfk7lxyjrcoeYjVoHFI+B5w1v57JgalVddX2abOJxDaTAssfonOx84CXi1I3
16mt9dKwr0Mh1ap0DoUjMu3ov9vKK/1UsVY3Z63lrO1IWwqkJeVqIqKmlkrlWtpZAi9LPWmgroFU
rZ4cG2v9Xcl6nLSdB7zSSyXQOJedtwU8VwE13fG3AKGVb5XVVqsr57W6JdNlcx3GslrZHARqdVtA
kitXKmON96y1tQpQB9ST39vVY1it+QVeG5h8nVdLZ05gSdNVQUoDc8lLMHQ7tTIWcErHxdq2VVe3
kbNWeMlya+CVy6spplwbJeWh6x46WftrgeQqoebFlANzWn7IOH4nZOcBL+t1XjXIJHDV6q4BWq6O
gw3NpfBaun+yTd223mYuv7XuEtNtWR17iVlg0XlWfmuezj8EIqV2PWyILN3WmvK5bdf2/wTtPOB1
B2w4tSifUp0ShNaATYIr9/5ECYGtlKBu10q35qW6FtiWmLWdLeEl27PyS3m5umunkoqx2l8KEWs7
LYot90owuc2cAjwDOw943Yk6VBxsaNUgV2trCcS08ipBZo3Cym3TahfG+hKQ5eZLTNfNqZ0Ws6Cw
ZN5aZkvVU2rXI8SU1riNNcWWA6IFrJL7euJ2HvC6A3WXrCXfKru0nRJoWuquUVZLJ2k5eEKl1equ
gZfeztoOYcHAyq8pHmsftgZWazs5BbSm7pJ8C14WCM/AzgNeD0MeOlpFtUCnVLamnkqQOQR8W8Ar
NzyiFW6lutYbfq7KaoqglL8kbyt4LQmat7qNGjBJueXa7o16pbIX5XUkq8GrBTg5cLUCqDV2luJd
NQC1xNUOUWBQ80Phdaj6OsRa4dU60JQzeVtBawt45doq1cu1m3Mxa2VP3M4DXg9HvtO3wMuKh+mg
eiuASvG0JaotB+MtFRkK6cjkazt1eC1VZRpia0GVA1IOOFb5nOJZ4ha2AKylrR7zv+PE7TzglZSX
7sQJMEvV1CFu4yF5JXgtAdOWMTGo9rTdrvDaGlw1VaSnPlMu14ZeLoGvN9qx2qqB7sTtfOGVmzrM
O7hVpgVA1nCHJdupxb2ay3IDlNjehs4HxpdtwKgns9J/uVjaVZnonOYbnCYdmIakoQP6mF6EkJHv
K/kWCPRyDowWgFogWIOSNfWq7Vx5DdQTt/ODl+74NfVVU10t5VuUWYuqs/bfWm5SWqzmxnKsRyKd
KFyVhLE+qbyJEUAJoNdlDLCEh86OeeMcINCs3qSNYTnNeZq2JIhuQcfKzymvXDu9sS0LfDnoWQpM
l8+pNL/g/FyTnQe85DivkuKqQaUEuhrQWlRfi9uYa9sCWRZgEly55Qgjl+CVIMVRUTEoTqnsRJFF
C23YeVdmEzDNd4Rj+hRiFCAW09PyFGKkIMYCXDWlhjqsSi5kybWzVFCtroZeySUsTRKKJ27nAS/r
aWMNRjVQtdbVEFnSrgUg+SBAlynVnbWVYCUnDMszYKXJyTweoDWATJksc13qS8LIhheBPQ0ASxMJ
oGFY1uCKk5fKC6IM7Knkvq1x/UrQqdWtwWpN/gVeG1l62tgCHKvMWshZTyMn9ViUF8udctmi20Wx
HIl2x/yYl8rEPipdvgQP0tACizQBHGhIhTQTXijDC7HMdRiDssor5CHACZgBLKQbaTEdsl2OB1qU
CX/y6I4miCaFxl4sS+B5gL0o48V2BkjE5d5IywFsCZha83S55K6euJ0HvB6Bugso4XUIrGruo1mH
Bbx4mMiNSocimEjmSRdPlhOwGIEDAAIiCk4DwDCFVGmeXEgLTml5AJrIvyqIRQc3QiamMU3yUhoD
U4Al4IEm6yPI3Ag+URYCamm7cj5pw8dynibgYg7gYk/gXpbDUB6eIrSi6ktpFlBYLW8BLLneG3kX
eG1kD0eb4upQVmBbuJuzKcKqk9DyAl4eLs7JcVwWUJuopViWPAiM2L3gyANI0EhKKVxhI4wwrDti
EFIbfgBd7I4jxDSgMAfUENgX+VcBrwm4UppQXeNfk/LC3g15PP7FwzSkuXB0VJkBWKK83BZzOqoB
fj5BcKLqRjfWewL3Lsw9AewioBx4AJeC1kyJLZiWQq1Xk84/cTsPeEnllXML9VQEEpdBlSsv8mlY
90JteQEuDxfXnVh3zsN1ypWLkyMfAAYPRx5u7GazCUZa6napTphb9fMQmm7DzkvLxzQJJwmpcU/m
ANN1c1M8woUj6ibbntYL8wSvtKzd1QAsB+8DvLx3wzr3LqqvkDYCzEVwcHQ11ZSDWg5atfIWvC4B
+42t5DZaystSXzOgsZiHZUrzLiqjjscYlJxH9w6EAKuomiipJhchJOZOqCrnEqhG5TNAa9K9ygCz
IYah7qC8CqDTEDKVl8gbtwkc7wqXe6nUl0qbwksfkUGLVuBlHcVUdqw/gCtBjCLEaNo+CGEb5OCJ
4F0EF0d47QLYOK4jwg8+zWlwPeH1PLifgzva0xhTmwCLym6ihpdOv8BrI7PcRg2p2rKOUXXC1Uuw
ipPrPKiLczfN04FvihCipJriNCxjmu5oBJd0+QhCdQnwSHiVICZBpNuoKTUYcytNd/Xjmf6Lpgqr
BrM8lMZbg5yPONYKbQo+eXaGM0MBSkwjuDiCzXMEV1JpnJbjhG5Yh+GC+rQ8QEu4olG9JfdzEkdL
LqkFrxysrOUTt/OAl+U25tzEWv6Qx0DnAQmoLqqirofrPLrOz2NWJC5jGVsawNPDkUeHPpSj0X2b
uYKku5aH1AWqm0y6nVZPJXjVlJcFLrmeQ8HxTO8pZuvScuUsV9CC17zeFF5TPazPUACXhxvAxRzh
hQisVIfHOp479AgAS2UYMY4GWdeN0PIOvif4vgMiwCDcTu4d0LsIIJ4DLBfjyimxE7czhhcrQIm4
VMdhOIKYSMStqPNA14cYlQKUcx7dAK9+cPlCsF26c/LSnk4d+hFeMyiNaQBE15p2Cxti43ZzEJq3
V1Zqc0CNpvM0Do5n6+BlI3Z6lOaqyz4iYxlnnJUEJwEwWZ8KSm24xXWTuRUwGIDnaXA5vQ/Q6vsO
fd9FsI3xNPgAsAFkEVCcQBYn7qHgRsAeAl7z43xqdh7wkm5jgtcOo+vXCddvmGOA2Mz1c31UUhFc
Kj7VuQgt14/uXgZUOXhZ6XMg2bCxLnkNNgtedpvT8lNHqa7ASuqrZtK5m7ZWr2nBazq39q6suiw3
sASwIryMPOts6jPvBawkuKyrZWg/gtK7QdvDUxfWE9Q4ga4L8bRhotHt7AncY3Q1Y9yMk6vZQ7id
TSfqWu084PUIGC4hA7vk+nFw+bqgnijFrATM5JM/R72IS0U3j0aXbwiwD+DqY7516fbqkqxDTF6a
8nLPAU7n6a6t29HOT05rAJbbOQINmINMlqlFdWU7Y+k27FngksvzvS3DSwferSD+EuWlb2Xz24U+
azao+gnMtDafwqtPACMH77oxdhbjZ/0QU4uuqHjamWDmBbDYU3A9+zh0I7mc+wu8AABE9AQALwRw
N8Ih+W5m/qdEdBeAFwO4B8D9AJ7OzG83G0nKa4e5q9gxsPOgro8A64dAu0uwSioqzjv4IS41QIam
sJHB807dI+f30fI91ILYFErclFeD1zRvqrYkdMvg0ppHnEtVt3jeoRVb2fXTloPXmKfbywFservR
ZWy0l+E1hVM9L2y/fKX0w7ybnf0eHXpKEIvQEnkeDj1Pr9Ke47Lv0Psw957gUtwsup/Ud+CeBbjc
GC87cSM23zGy4QaIHg/g8cz8q0T0SAC/AuBpAL4QwFuY+flE9CwAdzHzs4367H7tVnwqGIYxhHkK
tgtoOTExCLM/AAAgAElEQVRPE3l0LiisYU7jZSQBNoGXAaeUvwReJfVl38PnysyCl+WoHAqvedcf
h30O50PkpfXsuYdUabnhDVPLuYnTtPzQBmuSR2/+RFGDxzqqOgqpAWUpsemVMsa40lUz1pF5aXka
H5NXUofp1dBBxs9k2Z678GAgwUvGzTgE/vu+iyDr4uBZB/QdmAn9+90Jtn5MeiJ2dOXFzA8AeCAu
v4OIfgPAExAA9tRY7AUA7gMwgxcAdO/xrjGelSYXwOUouYN9iFVRgFc3GZ4wBVYZXBpE07JOwahT
bZK67DpRzr7MU3tL1NdcK8i61gAB2U6LZrEUlk4b83I4kriZxqpKJeVIed26pRNrGM4jX6ulaZkc
nEp5pUleZfOrQN7m5lfgFH7ytlkBGDp46tCn+FhyOb0LaV0X1JmOl7HDn5rn9HTsSmNeRPQkAB8O
4BcA3M3MN4EAOCJ6XK5e94h3xfFXaQzWCKURTil2FQGGMY41mytwOfPUT6GjAVdXZQwNy9JlrS/p
FrfSUmdpHbCeZEptEceWIedw2W7iVGmN6MjFv6bKLa/TJISmadPluVtYV2Dt8Mq5fzl4ja5lDjzt
8LJuddOrR1+dWpFNy8Vl6oYAf89xexyC/X10QZNC8zJehgu8Bosu4w8D+PKowPR1nPU/uve4FV1C
MYzBgIpent2XKK+4zPJVhWbDSbuVeddxfj+1A/Xze3sOXClNwkana+coN17MSpucU4WPQ0zvjc7T
Zay0HIoldGrwysGsrLpIgWc+/EFfaVMtPc2rAmnmJxTKkwAjNZQXbZ+6XQm8iGiHAK4XMfNLY/JN
IrqbmW/GuNibcvX9N38TmBieGLt7n4KHf+JHzQLu8+V+WJ7fv7zI08qrBK1yOe1Szi9lC2T2Pbsd
XvP7+KR78lylEfOszIANVs/w2BgDFhenaownee0Xx7ggdZzMG7ZOCpc05oV1BS813iqtW4qsrrLs
dQkgqYbyqkvDa6qg9JWVB5csPy03cRcRg/2q/LzNDu+471fwp/f9yuTmcMp29IA9ABDRCwG8mZm/
QqQ9D8Bbmfl5tYD9+z706hh4D65fR/v500IFpDnELHDti3CzTvkSgEmR3xnpeSVmAWoKqdwYMAkv
Bz/ASy6DR1AN4IqQGvMkvBLUAMT1kTCjBhrSWi+picgaUQgAQ5g4ASyBKwFLzUEY4aTmw4BSmg8Y
sW8Jreul28/0jNpBdwtsrSrMLj9e+bvZlWv3EBuQDMKr6SNOOmB/FU8bPw7AKwH8GtKDIuBrAPwS
gJcAeCKA1yIMlfhDoz4/ef9rcOSxwx4dxcNMNrjG5T12WXXVx7w5vMqXRQ5aNsCk6rIuRa2acnlr
4DXMWYArLoMFuFiBi2G8mJVHYMU8DShK8GoFmAQXjQgc8oDpuwER4ZTSYn5KY6Lx5zk0nTxc/JH0
PKal3UB9lO0jnrvd5MClz/5cMeVVVc3Vs8A1Xv05cI35U3BJeP17+tiThtdVPG38WYRRWZZ9Uksb
D+veCYcIL/TYYV8BVz+UtdzD8dTJMj7bVnsszLqs8vs5uY/zHHBDPstuJICl0s2wM3u45DrGZSRo
+RFikNASkNIgQxh6PiqwyclWU8lITbIZlZd7ezMIiL9pHuE1QCstu/BmB4pHjnS0ULmPNL0lTOBG
U+U1uRpofhb62Rlf7xa2xMCk6ppe2Sl/vJ3n4CUhdup2FiPsHwYLXlMXcHrf6SeqS5fZTU7ffgak
nLup42g26Frum7bb2HEfIMZ9BM4In6CcRIyKQ15QV9L9E3Euqa5iW8QA+QgrzxNQ5eYJXhJcEzhp
tbUUXjJN58WJRFlySpVFsgaAcVgfoOYjxBgeHJf9xLX0Uq3BjYpNqrek2mJ6UnM9dejJVl82lOpA
msemrFu15fY5Aa5dvLJtV3G88u32LvDayBK85veUubqyoGWdNgmwOXx0u3O4zcHYFhObwktESxK0
vEfno1qS0PIRNgk4Pimm5OqNaiqlgWN5iHVmwGMoN3EDC8uTSb6sznITl8S8cnMFLpYAy6Rxomx4
RdYAtAC1EVogiootpY+KDU6oNxfVnAvL4SeCEV6OhvFTKSBeB9f0Cskpqf3sKi7Da37ljgCr9wQL
Xt0FXluZDS95esZTsBNxrHRKNfCmymt+ici2dURgp7aVU11tbqaCnPcBXn2Elw8vaiUGqGegj9CJ
b9sclxFBhREusgxieoKafld5C7A0uCyVtTZ8qqCVwGQprymspmWGSbxBJACNxjoOYV28IikotZiW
yjgCurjcBYClt8+wA3om+K5Dz/YjGgtK9ThWWJ9fmXNwpSt0rth2qmfsJnWswL68olM5vsBrG7sT
D83cRg2iuSqbKiVd14qJle9J03uerD9ciiwuT07zGPfiePnyGOlIAXSXFFfv4TzD9X4EV5xDvM6E
ln6XzwJQ7nPxayZgPbiSqQA+5cCkgeZUff3SyuGpg8zneTnjbbssfkfLXYBcfPFpePNM5+Dj1LsR
YMNbINBFVebEPIKIBIxorqhyt1YNmjbfQrY3AnSeF67qXYTiqdtZwMuKeU3vP2UgTU9NC8B0QN8S
6xnBneJWPsStBhdwcAVj4NyneFZ8Eth7kGe4nuGiwkoTFLxgwasEtBZ4tYIMhfVDTMfArGVTZRnr
ekImv/atA/k+uPi5OhfB5eJ741zH8J1H58I4RHYcY2UOnvZx7tC74Gr25MLodnLB7TTBpa9cO6Jr
K7QSuHS5/azcDqOiO3U7M3hZKisPpGn5VoDp+9BUbZUutY6F68c9XM/o+uj+9TzGrMSUXDvyDOrT
hCEutRheuQ+IanjJd5V7tAEMmELKyl9r1tPHGsicsazhY8Gu9ErxDLxSPrngUXIHuI7BnQd3FONi
DHY+xtxoMvWO4DuC7xB+puMcehfgNQeTdDf1FVy6QvPgsgIruwFY+2EetrO/wGsry8W8LJhpj3+e
VgZYLm/qJo6RBt32oLq8R7cH3B5wPeD2PLp9A4x4Ah2qwUmWyeTP8qx4lQWvHOhKcDo2vHSeVc6C
luk6ZsrlPthCQW2xeA1T+mIUTeoyePiYC4COhnak29nvCN4jfKKxowCo4T1d06vaCs6X1FQeWFNw
tdRJV/IFXhuZHfPKx7t22E/Ktp9uA1q8R8fxlPJ+jFmxnwxt6JCA5UPMqme4fYCNixCbAGYPW1FZ
H0jIwcnKt9SXpbosdWa5kUAeUFcNr5LruAZcWl0ZeZTL1y6lgNmQF8HHHYAdw+0A3wF+F1RbF13O
3jE68vDo0VM/vrsrxsd66rCneKWSBab8LVeXkVe8VFvJhZRDLE7dzgJed+AhdBFeEky5e4wsZ+e3
3K/iaeQeOw7g2kVF5TwP8SyKbqLzIa5F+xiziuCiBC09r03aFbTSci6j9Q0+az57Oom2mBcqeWtM
Aiat67xWeJGxLNOsz+ZZcS9LleU+8JKbIsAozt0uwI524Q0pfkfoHOAdx7ek+hAbcxTWncOeOvS0
w961+Rxlf2KEmHXL7qMLeVFeG9mdCl43cCsDL3lPSWX3WWjV71kCYL5H14s41hBY5ziMIcar9gBF
FzGBa3D19mJaArCSEiupMJmmgWWBbG3Q/ljwWhKwt9SWBbLaV6VyMbCl0ErgilNScMkVpY6BHcC7
4HbK2FmKjfmO0HeE3kVwsVRedvzLBlI3Adb01p6ANda5PG3c0EZ43cINpb5yKmxeVgMs1uO82N6l
/AiuXd8PLuDgCkpFpScNo1q+hJTOb41x1YL7ueD9Eni1xsRazYJSLr0ErtrTR8L8VeIL3chV4Erq
a5bPao4YHwuupedwSvaIygsRYPqKn7mSueD+DreG+Q3hMgZgJdV1CdhvaCnmJWE0FcD2abLhpQV0
cgtTfCsE3MOIdw/X92H8VYphxWkGoa3gJcvmAGSpspzbaMFLq69zhVfOZSwF8mvqquRKGu5gC7zM
sjp/N6ZTnFxM33UM2nlQB3SO0RGjdx476mM8bB/dynHoQ+oNHfrYK9LDphSO9/E2PZbaIwyUuLiN
G5oM2O8EeEoxsBsCYOWYWHILPbo+DHWYDBbtGW7vQQpetAW8POawKgX2D5lb8MoF7pcC6xgB+yVT
LuZVg1ctBlaKc+1QhtgaeCWFdiOAKz3ppB2DOo9ux/Ado+98iId1hL3rsHMOexfQkwAUcLQb5nuk
X34kePURWB26AWIBXAFsl4D9JjbCS7qFUgTPg+43MvkdetyYpO/ReY9dH+G1Z7g9x6eEDNpzBBUP
wJoprxzElsKrNai/RGlZMbHaU0cNpRLUgOuDF1B+ypjLK6mqktqS60otbQkv3Iiu5g7odgB3jG7n
wTuAdyHIH9xKwq4LSNrHJ5N7SL9Daq8O48ixpLyk6uogf+h0gddGdgfelYVXApGOVY1u463gDgqX
8QYL5eX36PowxCFMAN0SUw5UpSmnoLZyKVuD9B7gHKRyZRSceEHgfg2/aPgPTcAiq2wEzjBkIaO4
SIMtB6jWGFcNUDcy6Rp8aqJbGGNlwxQD/DcYfAPwfThv/Y7QswsIIjf5vmhHfewREV40qi4HP6iu
IR/+Aq+tLTxdnI7zSk8dRwU2DVFO8/bYDTGtfXARfYx1eR/VVgjAJ2ghTYfAS0KoBrhcvVJQ31Jd
OeWlYCUnmSaBxQjLcl2Da0ibJjcZ6bkGU1wefled4EWiPAUokYATuVjWUlq1J49afbXAS6uvtHwL
AWBWfpr2MAGWneI5phth7m4A4Um3D0+/qQc5RucivGiHjjz21GH8cmV6L1yHHh5d9Elk3gVeG9kd
uAU3QKtX4JrCax4PC8pr5/s4j0qr9+h6Rtd70D65iCO4aC28SqBaArAWeFngqsArQcpn5iwUFyM8
8ZJzADN4WaMnamYJKEAATBSSL4EgAbMENhfh5SK4XIKYVlg5F9JyC1ufLmrVpRXVLcwhlwHS5Doo
wIsEwKjnIbjvdz58Kb5z6DuPzvXYD98vTfAaX1gZoBVUlsNO5PMlYL+VpXFd0/Fbt2agysHrBvYD
uHYprnUrqS0Vy7qlpiWQ2kqhlcBVglaj8vKFiQW4mKebst4Ybo28aIVXaZJtxLfTmABLsOocwAJc
Lq5TDlo5dbV0SIQFrFJMa4nCsiCWwJXmuxDQx47BO6DbEfobHp6BfudCjIs8HHdwNH3BdYCWH+Yy
7wKvjUzDSwfjZX76Sc8ALL4VVFcfwLXb94N76OI0g8otAO/CerdxLbzkvAAnzqwPcxGUn7iDAlI9
28tacU3gpc5LLZ5fMmu4llZhySzvLwHMpUlALK13yaUUEBvUWErrostpQGmWVhouoWNfS0B1Q51j
CS11rknfjATIuEd8WSXDM8JLLDtg/CALgmtIYX1Puxj72g1l0nRxGzeyuaqagstSXjd8VFq8D08S
92NsK7mHWdfQUl9Wub5Qfwmwcm5kZUqw8nE5zZlHF5B9ANEwxfWe5+nxJaujq2hMgO0mepXWYi0P
E4GMaGIVl/chzXFUal6ALULMJcUmYmIuQsoJWFkgM6cEmU6dG7mecwElsPSNSkOrNJTFeFpM8TiA
GZ0PFwHxPkI8ZCaAyWl6bg59fHx8Oyt4WYrLGvO14314ohgVV7f3cHse4VVzDXV+CWC5urUYVwle
DQDjNHnA7wO4+giwBCTmEVR9BFOCVg9RDqI88iMoNKAseKX8Fss9ZHRGujkCggXIEqi8cDMpqC+H
OJcwS+osggsCYNwKsASZHLwSuHLuXwKYpbJ3mIOrAV7yTbiOAezEtwx24iuXXR5c4dhf4LWJjU8b
8+CarSdXcR9iXMlNHOJaJbfQgldrAL9UVrsGpbhZQ7wrAcz3QL8H9n2YpKIaNsVjs/IhpXb7ZJ6V
b8W3NLyWWs2F1OmT+HsEmHh9/SyctaORNRJszgVQ7TqMP5xOTy2XBOu1UurEPAewVPYGbHglgC2E
V1Je4wdUePh6lIMLsKqoLgBwB53Rq7GzgJd83ZoZnOcx1pWeLHZ9P/yAejIiPrmLJRdvLbyssqW4
Vg5gySUUyzKuxX10/+K874G9D+DqUwwL41wzUYRLZiBaC69D79MleOk0GX7SedYY0/TTwR4Bdh3F
OQQnOKq2PgDM9WMszHInaQcbHj6WSfMEIFneCh6WJG/pAIv09AQ2TcMHShBgzRRevcPUh3f7O0B+
5zI0F3B2iXltZPMfYRvv7+L9OHYr/R5xP/9JT/F3idI9PBReab3kGlbgxmLu9cQBVN4HcPUe2HOY
UtxKCz1Leen+YSmzErBy/XGJ1ZSWTpsF79VcKy95DDpMAbbzMc+HOFnnAri6GA+TMbEEo8mHTix1
1Km8BK4chKw7g55qlsqog0bi4DliATAGc/xCEjB+Ci468xe3cSPLKa8JxFiCqx9fWbPH+PaHQ8HV
Cq+coittX7qKCmB+P8az+qSuIqxSPGsv5hI+VpgtFwOWiswCW239ELOAlXMhc8rLGfkSXvKhoWOg
Y6CncMx2McjfEbBzgKcxHtYl1ZXAJaEkYeUxB5oGl3WwDgWXPIjGlACW1BeTxy7KNAaFV/FgqrzO
wc4CXjuEd8dPoMUKYtyHt0H4Hrvej6+t6TF/n5Zeb3EXW+GlIdY4sdyv5B7uA7gSwFJMa1BZiNAS
f9YedXiVXMNWeFkK7BDLQSunwCZxr0yehNce44NBWaZPEMMYH/MU+ZPiYdFNdBFGxBh/UpXcSK2+
ctBaCi99cNJUO4hSdcVlT0F9haeNiO5j8C+Zx4/wMuiivLYy/YF2+ZH2pLrS20y7+AEL6iHeFY/8
U52WyYpF6DKWvFk5JVhJN3EvlJYE160FTdfgVVNeNYAdYi2xLqm8PEYISXcx7Uun9kvuc8pzKo+B
KTBSBUK4wSCol5Q9YUhG9WQnTV2dp09IjtQLpjTebRjI2zMceTgKo/E93PA5Pj4D8XUW8JqO/lUf
VU/vkOf4pWmv1JYFIq3AlgJMg9AKxq+E1iTGFd3Ffh/BJRTXLZ6KtxqXLZcxx+UlMS+5vtZK/dtK
l+BKy3piMc8pxU7kTf6O9Md4sZMcXMqU5UQ5Kv0RtT8Oai6hZAFsJbgkwBAB1hHAPnzxKAyTCe/O
d/Bn4TqeBbzGEcLhd1cDwNKHL1i8Rz7FulqlSCtocsqrFLtaOgkXcYhvJXdRqi4BrltqFy1Y6T/D
Ul96vRVex3AbS+6ihJcEV6eWNbzk/su/wWH6d6V9mQBM/YGE4DoOZa0/YM1kPXXQJ+gAcEn1xS7E
v5wL3xINg3uDGHDk4S/wAojoTgCvBHBH3N4PM/M3ENFdAF4M4B4A9wN4OjO/3WpD/uaKBvcx/kI+
jWFhnn5h2lJINRBZLqEVFKrVXzmxxzj4NKqvFJwfnh7yFFCWK6jDenoXLXjlllsU15bwkoDSEJNp
CVDSPUzLMPYnF2rqxPIMmiyWPdBTuCk6ILhVfYwrrT3nEkZJWWlgWeqrlK8fHohJxuWoB3yH4UPI
4SGGB1Hybk4fXq5e5DBj5ocAfAIzfwSADwfwaUT0FADPBvBvmfmDAPw0gOfk2hhGBUMOqst0myVS
wZq8anJJ3QMmVpPX68DwTnNLFVng0dy1ymtIlQ7J2kO65vAv2Vbub2/5uy1ITybG5BcLbKxv/kfn
JhyYn9uesABre+DqqdnR4QUAzPxgXLwT43OYpwF4QUx/AYC/XmjBBNgQNF1y4lpOqmwr1+7aHlyp
pyEm3/CQg1NLp1zSeZf+mQeIzUXt1w5nrk1v5Fv7oEXMkGedE49twHXdE8R8vnLSdiXwIiJHRP8v
gAcAvIyZXwXgbma+CQDM/ACAx2XrQwPLOOqHnLy19VsBluslqpxWXZO7PfKdPtc5c7soO6jlItb+
jDWHYMlhXCOWTeg0lLeOkwlB45xspryONS1RdAAAPivldSUBe2b2AD6CiB4N4EeI6EOB2dHJHq3v
+vq3DEH6j7n3Bj7+3sRc5ZdbbvrsmXYmnQplLVtTVk+ZsuknHbqIrKZ3vSXNykvLrPIyuzYpm9IO
vcytv7NUplS+dCzWljfLpfO05DrI2bHCS4VrzLKfva/Hz7yyRw8HpivRNQfZlT5tZOY/IqL7AHwq
gJtEdDcz3ySixwN4U67eF3/9ew2j6W9gD8YtpDPAwLxXl57ktJS9pokKk3wFTApM6z+PMQag07Fh
kSefrKVliHWfOWxenQ+dJttaa7nTlEvTefrBmlWv9CBO5+ufH5XOzeQPOMcp2sfdu8NTPmGHW3QD
PXX49m94EKdsR8crEb0XET0mLj8cwCcD+A0APwrgC2KxZwB4aa6N+W/gaa54gfpVbwHMqndN0wRW
xnKus+U6ZqnDt5bV28kdyi2mpeAq/T21/ZU/FSq1p8+FfAHicA0d648/5pS2BzEXf8xlnFew9wbw
AqLhhbwvZuYfJ6JfAPASInomgNcCeHq+iWm0axquJ110+UXSUu/IU/yVRlhVnWXoUITxHVbiT9HK
SqurnErTpsvpy1crrq0u77X92anlNeCutZMAZkFs8kGQYwLm2JMwUxScqB0dXsz8awD+kpH+VgCf
1NJGGHXCGD8dID4lQA6eO3jn4Z0HdQSKYwrII/zuTI6hST6BFQFP6Wm8jK6nJ9nOBgHWNPBRuoDp
QuJEJIREHheHa1C6fcD8Gu0z8/QnyOFGuUGqpTjwIVYDk87Tv23MrZdexWWVmbwzkMKPtHc0vmWi
6wC3Q/bV0YunXSEvd82tnFjOHeAd0DsKfQgOPblh+fIO+40swWscZ08CXOGgEzHI0fgZrNgjSUKp
5Zm9xziYQ/64NvVuCS2rJwNZOGVJkNrECJ4EsF1KS+CKc/kxjNShE4wsFaEB5jEFlwSYnC95gHWI
tYqOErBq8NKcyIKL4twFaHUuLDsJLjE/GFx6viGwLICxC3PvCJ4IPTn0JD9HG8TBqdtZwCu5iepX
jfFu0QWkOYZ3DN8FBeMkvFoGGdUGAyVgyQtK92YYaSVoSQhCKHjCcOkMSiplSmjxHEqyTg4CHlOI
WX92K7z0n7/GlnpNEjzS9cv1eckGme4wBdpMddEIrvS21QFguwOVVw5cOdW1Iby8mHvn0LsEr/Cq
g+TVnLqdBbwst9GTQ49u0GI9OZDzcEygLriNCWD6q9Fk9cDSmzFlj+4w79HJlrqKGOcSXETj5lKH
5X6sRyLwJF9/LEGWrnnLlZQuogZQj2XwOgXlRZhDTAJOQsliwcAPGucTcO0wvNMrfSNxM5dRfnFI
TyWfdgGsJqorTn0XXMbkNvYUXi4lhcGp21nAa48d0juG5AC6yfNHQnAZUxQojiYMHx+AeKc3Dut9
SwKgJUlhTWnUqMPkE12uB7qU3gcoO4/wHioObwPd87iuf6cor339G0dLeJ7CbxtLILNcRn1opbKy
lJcDwosHaTrvIrQ6wvAyQhnjopxSsr4QlEtPXw9KU66MLifLW2lqYrXsO8B3hH5H6DtC3+3Qux32
NP3e/B47eHSrz+VV2VnAK71P24LWsD68ZC3qh/jBQjf8viaAi3MACw3VrRVcVtnUs/aYg6vD+Etr
UY4i1Lo+dB6/j+DyCO+vj1PnI8R8BBBP4ZW+AWH9hlweBv2j7RqwtnAbgTZolZSXLK9FixYrDhi+
LJTiWkNQ3o3zyWfRdJBew8lSRiWIrYFXDmiF+izmPEDLoe8c9q7DnqbQGt9ZfIHXJtaja1Be4xxI
aouDCyR6W1Z5tVorvNgoL30b/SRzP19O4KL4lgnqgxoY3vflw/K+D51vj6C+PAOeRhWWwNXBfqOE
hlEJbiUVttaWuIytyqsIrwguF+GVYlquE9BysD++kQuS5dy6tfC6EeuV1FYL/Hajq+h3gN859F2H
fRddReom0BqV18Vt3MT2CF/2lb+3mvz+iqIqE/Ag14dv0/HoPqaLXHY0Sv/JXqCtxeXTvShJAAkl
OQQjpUvXQ5TV7yOT6+yDK5kg5npgvx87pf6o7OT9XmzAicvhvlqs61B4wTh0OWhZ8BrKkaG8aMoR
+e3GzoWbQddFeO2m0KrGtUquYgl0S5VXC7i6qZuIG9FV3AF8g+B3mCou12FP86+eJoBd4LWR3cIN
dOirXt1kBL6L7+XeEXwM86evpswGGEol1HLLL02WG6g/uCEDUXvMO8SCFxq6OO92MR7WB2Dt/BD2
m39wNq7r170MaZiDKzciJJdeMzLm+vAD01NgTvE8OmAYSGp9aDalOTeWIzfGtahbAK2SqrLcxRy8
5LwVYDuEN+NZ4ItKjcXU7yiorTjt3Q63XPj6g/G5ZtyKn3a+uI0bWQrYA+WOMYArfYeuo/jGyB4d
eaTvoDvRQ0grpBy8WsAlb/m5j20k5SXr6MDUDlVokQIYRRWWvqItX9vCHF3MBC8/BZf3Yk6ovsUi
2SFPHnOA0t63FLETgauA5ZwCVQy6py9jS2AhzsnNwdV8jnNwqrmTFpRaJwmxO+z6nBTXjTD1nUO/
60Zw0VxxpW9wJXBd4LWhSXgBc8/O/O1jJBQzIsxCpJviAKd0x57Fm0rwaoVYyxeDLHjJAJUGlp+n
kZo7UZaFbEpDReIzjBFeaRlxOYKLFcCkmzk97usD+CU3UZ/fyRNCeVoEnIYgO4nlCK0EqsElV+fS
ghZ1aqMl5VVSWIdMsj0rYH/HvE6CF98A/I0QoN93DvsuPFW8NQOXrcAu8NrIbuFGeE2HgJNHeiG0
XHfo0MefOMR0Injs4cWnnYILyTE4yyE2li5aBSrKwUgqpbVTX5iXVJcBsokaM8AloeYEvDo/Bv+T
OmNg9h6xHpgRaYAW2yArmQktMuBF8zhXcvdJwCs3ZaFVuxG1Ku1cnGtLcCk4yZhXeIoIYEcxxhWH
QsQY177bYR+HQ+zd1DUc4TV+EfXiNm5s78INdBhH/soppXVw8PGZic7zcPBu/P1WB4+OGF3n0e08
aM9wew5zfeddoqAsoPWZeiVw1b6eUVBjGl6WfCKP8AQ2LacnlxFewAivBKcU2A+Z43xY5Elyk01c
R+VegdIAACAASURBVBLQUgGxiYsY02XMMkGK3HTZhFUNXlrmbQWulvwblTJCdQ1xrQgs3lEAl3ND
YL6XgXlKcEovlprDS+Zd4LWR3cINeHjMP3wmFdccXvI3kD3izyC4Q0c9dl2Pne+D+ug8uAO6Lv68
SAJsjaKSEEtAseClQVX7ApE3li2A6Wi7AleaE48xsk66mglEPEIMwPytoZiWFbNmk8CilKCCYfK9
WVJ1ARgUFbn5ctNUAlcNYBo+Vnopf41CE24h3xiVVgjKUwAW7cL4LRddQpJwsuG1V3kXeG1kwW30
A6D0zxg8HHZw6NFjp+DFCODaDT+BCKcogA24wQzeA93eg/YUFNjS+FVOWempVCaXV1JXPpOvo+z9
CC1WACtG5UsBLavcIVYKgJUCYw2AKsJMw8sClwWxEpxa8zeBF6KbSOh3nQBUKa51I/appLo6lXcZ
Yb+ZPYQ74eAjdIJ3Pv2hdjgBO/TxX4degi2OIu6GvOnUOY9d12OP+Lv6FA/bBVeS9gzqGdgDFCeI
edEt9KiDS7uMNeWlo+hWflzWgCIJqRK8lk6HmvX4UT800eCSeRI+1kOWHLgsSGmw5RRYK7wWgmuM
Y2EYGY8Og2voO4quIrDvuugiOuwpH3wfY1p5t3EvylzgtZEleAW07EPsajJ1Ak17Aa8u5k9LyNHE
O+yxox57F1RbRx6uY7idR9d7uN6HD9nuPahn0B5wNXDp2JXP5JcA1gKuVqBZgMoB7LrhVQJYghLU
upwIdYDlXMQWkJViXkvBlgvKqynByncuTC78xCe9EWLv0kj5DlptpWEQNry6Wf5lhP3G9hDuRIpl
JUXVIb1/KLmCCU1h3YLXTsArgavHDnvao+t67FyPjnt07Md538eJAsRuAZyUVy4YX1JXLfAquYml
2JflRpbUlQWwtfC6DrexBLAcxKwAfc2NTJMFIg0vBxtKNbfSAJiP8/H3iN3w+pr0Dq6e4u8Txc98
5tCaK6sAsJBuqa8LvDayBK9eAGs3KKyEpf2wltL9sLxHFzVZQNY+1tiH4D3p0zxeAl1P2HmC7/fY
9RzuhvvwhC6AiAfwzGAmIEI5VdY6aQC15lkxMB3HWgMvZNLWWi6mVYOWhJPlXrY8XUx1loCtNkkQ
lfIm6o2AXYpjIbwFYhfGafVuF1xEN41TWfPxStZpOmg/u9qH+QVeG5mEV48ON+JBTvpJzrvkCmIf
ITU/xfp+lD+FEWwUVRnCaLPOcVBhHYNuhHgY+TE2FuYYgEYSViXlVXu6uMZl7DGFlA68L4UXcDXw
AtoBVoJYTX3VYmBLn0AW3MPhfVoRVCmexY7AHcGneVz2XXwLhNsJ17B0FZdAZv8kyCrTX5TXdvYu
3InxWeJ+UFkBUDaY5s9aZH7pvqVOaVJmrseOejgKr9npOg/nPRyLec+g3oef6+xZqDOMA0iXKK5S
QH4J0ErAWuo2JtvSbcyprlJ+SV3VAFYDUyn+VQKYTN9NlxO0fFwOcxdBFcchkhPLYcyWJ2eAq3wb
1kArAUznX36YvbGlgH109LJqK833w3pOWdVP+WTueuw41HcuPpHk6Jhy1IPcw/ngZnIPuPh0cgju
l+BVcvWs/JoLKcvUlJYGWGtM65jwApYBrPREUbuSS2JcJTfSAlYhHpZeBpgA1ieFJV5N0yPNI8go
xWx3k/duLZsvq9cP88vTxk1shFeA1V6prvb7ThlcZhrF00ohTT4G0HU634cnlD4+qdwxuh5wSYX1
AHoef97jo3vpY7qMkWUARa0As8CVg5cFrrQOTOFUUl+HmH6aKNNlfqvr2GEKrRq8tOqK65yBF4u6
4Ws8cTiDA9J7eNIyuwCs8NQwgSuMgO8TvCYA6YarzKv0PHTaAdYCr4vy2sjeiYchjfOS6qqDVltJ
m8n7R5vikpMV7qxP+3DK3fhYwVEYM9Y5wHkGeR9iYz6+ntqrqU9TgNdkMGkEU3opoQkv68ljLUCf
g9y5xLxy7uESeFngcvNAO6d0SvErihNC3MoRmNy47MJvaVP8KgxxiHPqxl9+iCuv5Sqb+xHzKz0H
MH2F5wB2gddGNoXXHC77SXqC2HhZLAHXcmiJieI2nYejPgT2nUfHHGJicSKxTjzGy5z38Z1cQZ05
AbCJssoNgagNjVgSpLfS0bC+1pY+aWxxITujTcs9tGJhhjvIFACWpvROeN8ROMWsyAVgkRMTDfGs
nsQHL2gcYN0GMSfAlS9XUmeyrVJw/wKvjeydeBg69EMsSz5pHKNgUn3JS8E3g2sq0mW+j+15aHDO
Lj+K4Ep57Cf1U6zMibqOKbqagPMe6Dm8+UECrAVeLe6gBS8YZVrVGHAceB0yWfCCkadjYwV4cWyL
HeDTFJ8GpriVjzASZ3uMYaU0cpOrxk+uVGeqq3FQ9lQ9lRVaDmBj4MNyI1PPuIyw38hSzEurrukp
nK7n4JUDmISQbE9eipbwnsCLppejg0dHfl5ORDSGy9xHxdb7MPcMx9Hd5OQqsnAnOcKFR/dyeP2D
KMMxPQKG9JsGGeN7/YEJtIpfWkr5wOHwUkqL07Lh9nEBWgzMXT/xi24e4CWWKcSkApho2GZaTvGs
AVqxfO8I3nXDWxw8ybNqQ6mHm11RdjmtluxI6zw/5wZOx29JFbc327vEvDYz6TYmveWwK9x36tGD
KQTngJF5Tp323GUjL7H5vdWGmJw66oObST2cYzgOACPm4X38lGDmp+/nHz/xJtMh8lI6gSLUBuBJ
GIk5G2nFoRPWPGdWXEvPDWjpOZyAXYIOpfhUeocbIrzkpNMwxKgm6W5M93FiouD+uamykl+ctlVV
O7y0TyCvIHkVajCW4mFzdWanp/06dTs7eCXwWKdzqo70vcuG1252aUwBZl2GNXDN1FcDuFxSaC65
kvGn58xw4BgbSx8SCeuEBKXw9jICD2UIPs5TWvoMXIIf4jIJ0MGEWPaTccAcYEvglQOXzI9wktDK
LScVxUQDyJjiZ4lpXE4gSi+n9DFtti6WU/n0ossUz5Lgmb7JZK669BVSch0t1aVvrRYcLdVl+xRT
H8Wrdi/wEkZEDsAvA/gDZv5rRHQXgBcDuAfA/QCezsxvt+q+k1XMi3YTANjiWbuFY5m521hWR5aa
aoNXXXWlL347iopLlJ2+vSy9R4NF3TFvXOdp2xzLRBUWHhJggBJFgCV3khgTkAHIAmzCp5wiy14Q
asrka1BZ66OKglJXSTGJYPrkqFHmSE7LzY/sOMkOz+qMldVXp66o9SpNx8S06prDa+4i6vkFXlP7
cgC/DuDRcf3ZAP4tMz+fiJ4F4DkxbWYP9XcOnbujPgwMJfueJJfHuJR9T7PuPcuBNK0ry1iqaxrv
GruGvBdbXWbevaz8KbhIg4zCMgAM37oU7iUcT+AVlFtcBuaxLkGpVfEvHa8aEkVaAhQwwAmQ4IrQ
QlRbg8KiiXqSwBpvA2VAtQBMxrjm0/Sq0FeBrJ9TaWV1Nr+q9KMoS7VNVZlWj+M+n7pdCbyI6AkA
Ph3APwHwFTH5aQCeGpdfAOA+ZOD1Tv+wEV6uH1yskqiegsp2+2zXcH45aFCVy+fuvXM41bpAHV45
kI1zqeyIA8CA+Pk3FgADRwDxACsalnkKJ2Aoi1huyFgauKfhPwxfiCISeQJiGEFlzQEFrgQq0tpV
fvtgesRt5VVWX7Uzaakpr8rZt8scwGq3bdvttK9+G4zygzenalelvL4VwFcBeIxIu5uZbwIAMz9A
RI/LVX5nH+DlOt+suuanoyWmZd+H8ipsrq6maiqfb1/arNqwVVWr6pLwSsprorhoWi4prYQRmSY/
+BuLDNCawCsajcVmNs8bt5q2JvtO2soAsMmWBcBE/Qm8BJD0pM+G7VaW1ZiG0RRQU6jZV0FOmy9R
XS3xMju+ZS1f4AWAiP4rADeZ+VeJ6N5C0ew9+x3f8O0AMcgxbjz1o/GwT/xoNSzBi7FVcj2jkkzl
VldVlmtoXa6E2qVsgWuqrGYun6pLRrk0ARi7J9lqbAauCRaQXdenTCKj/ZSSUSrfkky39lanyba0
msrBKw+t6RHO5ekIrBX/mj6VHG85tjLLw0WXTVfqrCzbV7hHh55VeXZ48L5X4aFXvAo+3UBO3Ih5
qc5fuAGibwLwuQg/SX44gEcB+BEAHwXgXma+SUSPB/ByZv4Qoz7f+Ya3gxzDdT5+qszHn970oDQo
NLmT1MMlZUZjOQm0YSR85r6kxb8G1xxMJXiVVJcNrhq8pPNj5UN1YV2nNun6wFR5jctTpJjnP+bL
JcvkFqdp1pbawDUFVDgSVt4cXPmjXwLb/MoZy091+rQ967ZoXWHzWFlFnXEClYNPIOMAKs8BbuM8
pYc5s8MfP+bPgplPlmJHh9dkY0RPBfCV8Wnj8wG8hZmfFwP2dzHzLOZFRLz77QfDV2GGbywyyHmQ
6+Pch98Uuh4uLjvyYZn8OOpdzHORhfl9dK7CLGVlB9rnefl7tu0yzpd1F+NZWdttlPWsLm6jABhh
ZQFMgmx27mL61E2sYc6e6zRrj+2/avpEUZeRWlfiPXcG5q6kpX1Ltylbh9fiYfNbpHZFDbeSBbjY
wfsRXJ4deh/TfIfeO7DvwN6Bffj90zvf+1EnDa/rHOf1LQBeQkTPBPBaAE/PFez/5I4w8nnH4ss+
HtR5wPVBiXV9VGYJYD4ME3A8/Fh68rOdgvKyIhlWTGt+yUzjT1NHQcItD6p2eM0BNYfXCDhdF5h3
dShtkqwErRyKrDJyy5bJvDK82hRXO7wscK2H17yMVlV2nr7F8SwvzOdqrxAPk+DybpyY4PsOfd/B
9w6+78JPCHoH7uPPCU7crlR5rTEiYvwcGz+U9cDOh3nn4SLMAsTCD6IpzmeTiHuF+TSN4IdhBTK/
I+upX/6SnF6OpYB8KaaltcEUUG6yrL8hzka3K8NL42ByLoYyZWgFmyJFq6aazfWflQe1tzaOtaNd
hhdU3hxIFpystlrhZQXzhyuCVRmOeTzmT26f0VUM7uAcWuwpzHuK0Arg4j6AK0wU4PVhdFFeB9uf
ItyQZy97I6Bz4Z1JHQHxR7JwDI7upXcc3Uo5D6Ai8sHFTLBK0xA/U+kzwMydgNJQCAte+h5vA6sN
XnOA5bRFDWAltSWRUgbYMrdxWtOCl1Zj8+hcDsXj7UAflfm6rje/veTUl9xWyZ0sPY2c375i/uDu
RUB5J1zAbsjnuM4xn72D9xTcwZ4CvOKce4rQirDaU/zhP40/2D9hOw94PYgRXoMCo/imSgI6Dr9p
i+DquxAfg4yTubgeISbjZeT8GCMb4mdSqY0qTELEGvUzV1vT+7MFrmk3md/Ldd68q6IALa3Cypol
2IgMG1yybNlaA/a6loaXRuoUn3V4TY9EDufTujnllRvQqo9+6UqZx7HysPNMA4h6DkrJe4c+qioW
MOP4ygvuXYxfBVDBU/w6OsX3wgV4wSPOKUBLfq7vxO184GW9eyl+jBMdDW+35Il7yZO3YA5fTu6S
u9kHl3NQZT7GzTy6ro8uJA+Bf+vy0mk6+F/6iY8Egw2uFnjZXVfum9WdUxcGLHiNZqs0b5bdynJ/
1Zg3L58H1/RI6SNcqm8BKgclvZ8l0EmAJXhpNTdZ5+jusYPv3RCn6iPEpLoaXL99hJh+z9seAVKl
V42njyWfuJ0HvJLbOIEXzd3I2XuYaJLOs3eOE+A8fHx6yY7hnUfXeXDXwXc+KrUYQ3M8jpsS8xQj
G9xIiqorxcgoXo5DHC3UBSDGWyn3kCylth5e+e48hVMyvbxWea0zG1o5gOkyOYC1wyvUT2fAhBZP
AcYgMCv1xbEOpzojjMK8G+EEGvJD3Xh7YRpiVcHlCwDzPsyDwqJRYcm4Ve/yrwq3PtYip9MOhQM4
F3glt1G/RM76CIIO7OfekOkS/BzYMeCCyxnczgA051i4nDzAaz55MfdhnNmwzGJZrvNspLszHgiU
Ylb2BEjItcALsMGVB5j6SdDmVlZctbS8+rID66XAv3YzrTOUoAPGALHB1WOnlp25zOF1GGHZE8IL
QCIQhevnRazKR1dvzEcEFs3VlQWq0vJFeW1kObcx87reSb75VRgScx4/qOAY3GGAle8QoYUhXgYX
1NKwTgw4H9OC60mUYmkRSJOYWkqbgiuAzIsHA4ypTlg2LYVXspwSm+aNqDiO5cGV1mt5rcrLKlse
L6ZcQR6VEwRwQlCdRpdvEkCPwIpzJJcvgirMESDEGGNTMW2IW3lRro9zjzHgnns9eOmLVRd4bWym
22is68+uW1NSXemtmfKtm7EeF+vKiePkQ3wtLpMTIHN+HLqR4OX8CC4xaeU1dSWBluhOGMk0VV5L
wJXm87zp9o9tUzjNt5j/K3IAmz9pXAIvRBU2wCupp+jaBfWEQSmlGJSP8agxNuUG9y4E1ym9onWc
NHxavlOwJk+Ca6/yLm7jRqafNlpQsdzHInga82rTAMOUFtxQcgR2LsTUHIMjtEJcjaMLGlUcIao1
HtxPl9RY7HYg0Z1p2t0gf6dIqZsxXIzHQbQ1LRfbEeJlprxUHhD3OexKypgub5SXhhhJdaXTpnni
L5DxJxWLYh41KVjAi0dwgRXIkksIF+NR0V1jN7p3jOj6JVXkxmEJsWwCFA+gUuCygMPYBlaW8rLc
xUvMa0Oz3MaS+7gFtOSns+Q8C67kgvLgfgaX0oHjj8rZYXgAMLifoX8M4IKAWgIOSIAkQYxGKI1p
CUwCVvIVODLfrBtsBimxfQLPL2zOLB+YN+xRWuYRXiFZAIwxAoYFgBJo5FwsQ5TDLC0ejWGulmNs
Cj7WU/BCHIbAPpXH6BoOoNJKq6C6jgGx3CfzLm7jRqbdxpIC2xJcGl7ZfaDpcnI/icEUhmjwECdL
5QS4SKSlMkmRIW2bJ/MEHvVa1BFIw7KCllFGgm1iMj1t8xosgYEHyIg8QEBKBLlTWbU+gdr0LYfj
hLEu0nOJQVmJdQmcCM8h38v8uC7yZrAa4MFzgLGabwUwa7jExW3c2KyYV4u7d2i+BJiGl4bWzH0c
67CoxzLPgqK1TaHQhnUn4DUBm1BoA6SQgVZ0GcVTVGkJnBKE12IsoaTzaPpkbgYszGA1BVNc9kaa
ghcmcEIeMLn8XF4NOmzUb/n8Xesn8qxyF3htZO+E3cFbFFMrtHJwJDXl3Moc9Erw0y4pqbzcFL+Q
EyYS0ErLmMw5zV1w+3hQURFsLq+spHq7PnhN40nTPK3MgFE5QcBs2g6sudfwQn7SSqiUZgHIUjol
d9ECX1+pZ8GpVl4C88TtPOD1EKadv8WF1GVrKkuW1xCUk/Wx0hLELPhpSJVgl0sjKqwH0HB0P2nw
hkYA8eAKjmVMOMm8a1Reo1s23wkeOnh0fAeAYQIhvV5ctoBTApiGgi6Tg15faKNVten6JcW1pOyJ
23nAKymvnIuVU0stCkzDIQefXFs1VWYqp4a2iuBKE6m5rhchJtJjvx5NAMyGl5quwzQ0tPlRfc3q
xfxpGxVVNQPPQhWWU1s1AJVUWa6uBmTNJSy1pRXaidv5wasGpBJU1pQtwc0CRsnlrG2nBKlqmUw9
K10Zu3zeycOrBrYWSBXBtaB8C7jWqCtdX0OmBL6SGiy5jxd4bWQleOXg1KJ0WkGXa8tSRiWXs7RP
tXJrJhTSkcnXdrvCq5S3BmIaCIfAy2rHUld9oZ41Rqy0Hzp+doHXRmY9bdSduzS8IQcMy20kkVeL
P7WothqEVrmLhcmJ45YDGFSZdzd4lfIOgZjlxi1Rabn42CGqrdZ+qa0Tt/OAl/W0saaqSp37ELex
Bo5F7qDxdywFVU1ZoZLfWtcZeVdlSwG1pO5S93CpIquBw1JPtW0scRtbIJobknHidh7wSk8bW+NN
rQppqXpaAq9SzAuFfVsLLhjLUOk6Tc9b6y4xXW9Np2AxZ5Um03Xa0rrHgJi1jRa3sbStFnezpAIt
d/ICryOZhleuE+fiYTnIlPJLYCml18CHTPoahWW1m5u3lKnVWWJWXQserWbBqDZfW2etupL1au22
uHU1xZSrVwLbBV5XbO9COzwsiB0ab9rKbZS2BbBa287lQeVbcF1r1jZy6meplTqZpXrW1N0CZKV2
S+5ayzZzebW4WYsyu8BrQ9PwaplqT/22ctdK8FoCmEO2r20t2Fryl5jc1y07xhIAHVJ36eQz7eq2
awH3Q7ddKrPEVT1xOw949XGu7+a5dQmStaA6pE6pbrJaO7Uy1vGQbTuVprcLY663aVkr0Kx9XNMx
ciCQ7ZXSW+Fm1bWevi0BSm6bEjZL412HQs0ay2X9fWdg5wUvoN7x0rwFJMdQX0uBU4uNoTE/V64G
oRoIc3WWQixZS8fQ4CkBLC231JFldefNzS0gyXnN7cqBUJe5iqeeFjBzx+wMAHYe8NrHeasa2EpB
HQIovR9r29J/kzWOq7at2jGzypbqrYXXkg5hKRidnytb2k5NKZUUU2s7LRPUfEtItdRLDxX033RG
dh7w4ii9Jge30ntyP42ZqaBKuTXQkru4Foqzv6eQv3S/cnVrZa3yx7IavKxyS8qm9dY41THgVWtr
8Xa4HZqz13PoHTp9Ow944V1i2ZI3xpzlcgIUjUW0OtpyWa63Qm8JnLS1gKumpFrL6jrHshYlpTt4
a1lZZwlUcvu4BDjWMIrS37LJcoQaEtysg5XbodO1M4NXrberZVa9LAFNQwaw09bkl6DkjHw51/nS
1sAtt0+WrSl7bCuBqLWvlQC3FE61vKVqSe+X/jtKjDHzaaqoBmCJglzaidxOnaZdCbyI6H4Ab0e4
79xi5qcQ0V0AXgzgHgD3A3g6M7/dbkG+0CtHg8zEMUhkvAcq7NySP6Qhf8lUqqttDdgsiJb2vbUs
GvIPtZpX06K2gHz/tNo6VHmV8rT6WsKJJRxhvbJkOq8fNxIXfd+NNkL0GgAfycxvE2nPA/AWZn4+
ET0LwF3M/GyjLgN/gDoJar+irvXu6l9RWRfJBAyxtEmasQvjH1pWPZYyMre7MK9U9qoU1lKrQaVU
/lh5Vj8qqi4u7H9ugyXLSTK5vHQ4/+PB+qMBJ2RX5TYmkkh7GoCnxuUXALgPwAxewW6hLF9K0NKD
pnR5GHNr9xvLDq5qvDjj4gA0iHlpM0vzDql/aFk5X2stKmrrsjqvpcyS/dCxplR2klYDVYvEzMEq
t16Cl27ndO2q4MUAXkZEPYB/zsz/EsDdzHwTAJj5ASJ6XL56Dl7AvOfm4JUrm2sPRllr3SgrY20s
stICMbK9vQSBY+SVyi5RaofaGiC1lm8pu3keYxprklk5wOiGc3CxyuXqIJOf+zHj6UMr2VXB6+OY
+Y1E9GcB/CQR/RbmR6lw1L4tzgnAUwB8jFGm5jJaZVveKVNq0+q1sYz5sEC2eRvYli6m7FO3jdWA
k3vrXw4wucFZJSi1tJumX4zTediVxLwmGyR6LoB3APgiAPcy800iejyAlzPzhxjlGfhVzCEyK1mZ
oOa1sla7h/yw0FJvep9yttSHW2Mr626lvIADvZVDruPWui0SrOS2wcjbGl6tyqtF1X3ou3fMi4ge
AcAx8zuI6D0AfAqAbwDwowC+AMDzADwDwEvzrUi3sfajvRy0SssNSqqq5oD6Nkplcn9PLr+07SW2
tl60Le99B7W1lnyt7pIFgtw+5MpaLp7VlgWW2mja3O+dStusweu07SrcxrsB/EhQUNgB+FfM/JNE
9MsAXkJEzwTwWgBPzzeR4FUaL5AbRAXMAVXK02ZBqwRQvX7Idpf4ZGv9tw18v2u97nMddUn9lnot
28m5giVQ1CDYAq9cXm275w2vK3cbl1qA3iuxzL3bKi/l59RXzVpf6NXiBpesBtWWulv6f1dtazvh
0g5cKltrqwagWlstv2MquZU6rwTjtPyx795u4za2R1nB6HkubY3KsSBTUniltrfaJ6tsaVtL6rbY
VVzPrRCyXKLWdpdCrwVe1rKuW9sna1s1OB2yTzrtPOxM4CVf6KXnVprMy+VLa4GXVDWl/bDazu3P
2n1q2U5tv6y6a7ZxLLM6Vq38knbXdNoaKPS8dTs5AB8Kr1zbJTcyt4+nZ2cCL+udODWVUYqBaVsK
r5Z6tW0sUWxrXMEl7u2SdpcquzV2zFjMIT+Bqbl9JfCUtpUDnbXdmrta2oZua8k+nJ6dCbx6I63F
7dLAKamjHFBaXcqWjlx7WnlI21bdNTGwY+3TEjsWvJYA5dD9kmqptWxJPWnlVXIBdd0l22nZ39Ow
M4HX3khbEjOCMddlZR0rbQt1JF/vWrPWfS/Vrf2tS+2q3MYt4jBL3Kgl+9O6T0vglcqXBq1a21/r
ktYgeQzFu73d5vAC5hAolc21WwPfUjW1RBHlYLqkrrUPS9uqtbu1re08LR1wCbTWwA5Y5p6W9rkU
l7LiVqW2Ycxb9+P07DaAV07F1ICUKwtsFy+zyq6NRW3lsul2rgJEV2my8x36W6NDXcy1QyNK5VBo
t9XlrJW9wGtDy12EFPNqcEnzmuJJeanNrWNTubItAGmFqa6TS986HnYqdgzl1er2Ld2PLcrWYJdT
XrXyp29nAq9cwF7OS3kaSqXyS12qpfA6ZDtyvrbsVcWtrtNqnXVpvOtQN3NLeOnyMOaH7FPrPl+/
nQm8SvK/pC5aFU4pzlWzJW7gEle2Vr9Wrtb27QquZKXOuVRhrFFqSyBwyD4tUZoWxHJlT9/OBF6W
8irZWleu5SmgritdzDX7eAz3bcmQjHc3kzGgrTvqIWPI1sablsb4ziuuVbIzgdfSwOtSVZPKleJn
SxRebVtyeS38SpbavF3jWofYsd7TvlZ1yXJrFNGxYmunb7cpvID1ALPSS/kw0tM6G/lWPG5rwCRw
1R5mvDuaVF1bd+BcHIphXxNWkN9qU7edy2/dvwu8rtCO6Tam8mvbWgKHtXG1pSZV1wVeUzsmvOQ2
WtSUVa/U3haxqmO5zFdvZwKvY7uNLW1t4YJtuV+17RzDHc1ta0s7dqe6CvVhBdMPaWtJTKu1MVpg
ZAAABZVJREFUrQu8rshalJdUM0mmb9GxErik9D+kratSXlcVsN+y/avoUMfuwEue7C1pcyu1mNuv
84PZmcCr5Y6jY0hWvGmNpba2Cn5fRczrmO3qbWy1ratSBEuD6UvbtuB1qG35kEED65jH47h2m8FL
B0WB7dRSAtiWdpUK6Ri2lUut1dD5daTj7f+WbmNqz2r7/Ow2hNfSoQ5L2t3iJOsnj+cKLqBtiEmr
nTu8gPVDJVrbXQuv2oOAUpnTtdsEXjLOBdgdaW2cScbPtnYbt4zNXZdtdWxuB3Cl+daxpEOOTQlO
W8blrt7OBF61A1uLb23RwbZSXVLFbaXmrsu2fPBw3sHj0Y4RsJftrd2XLYZZnJbdJvCqlZPQWBO3
2urk6hjXeV40F2uxU3CDt46XnZbdZvAq1b9u90y7iVvtyzm7nKdmxwq0nwK8br8b5bsJvGQ7VlvH
HneVtq1jc4eYdj8vdrgdy9W7zuEf5xuQr9mZwEtLXmtIRCmvNu7rqkCw1diz1EZuTFvrcbnkzfO2
UipXBYvaE8NSLLHluJyunQm89MEtXRi1E6jtHONQufjd0uNyyZvnHeutE8e0te7h2mN2Gnam8NrC
5J3l9E+UbYeMrzr9O+thtvbpXE3JnKJZ4DqXfV9vZwSv3wPwfhu3qzvw0hP+GgBP3mhfllrOxa3t
07F/lpSz3wXw/lewHWuoQs5yx+o6Vdeaa8ryTC7wOhHzCPC6Z6P2rI675mS/BtsDtcVk8F/b7wJ4
UqX+dYzs/x1c3bFqdaFyx+o6O/6h19Tt/YRR2pnA6xi2ZfD8Oix3YS69aM/178/Zks57O3fw2/Xv
Gm3rXxpf7GIXu9iVGDGfNqGJ6LR38GIXu42NmU9Wmp88vC52sYtdzLKL23ixi13sLO0Cr4td7GJn
aScPL6L/v33zedGqCgPw84gUaZRmqdCgGYHBIDSLBmMWTZFlBK1zERa4CxQCcdRFf0IEbbWFYJug
nBbRjAwutQlnmiGbSYjw50ztoo1Qvi6+K16HyVZ951x6Hzh89xy+Cw/vObzfOfd7r3vVBfVn9UhB
jxPqsjrXGtuoTqiL6rfq4312GlCn1B/VefVgaS/1YfWCOtM4fVTaqeW2Rr2ojtfgpP6q/tDE6rsa
nLpE1clLXQN8CrwBDAL71OcL6XzWeLQZA85GxE5gCjjaZ6e/gA8jYhB4CfigiU8xr4i4BbwSEUPA
C8Cb6nBJpxaHgEutfmmn28BoRAxFxHAlTt0hIqptwG7gm1Z/DDhS0Gc7MNfqLwBbmuutwELheH0F
vFaLF7AO+B54sbQTMABMAqPAeA3zR6/yetOKsSrmrgut6p0X8DRwtdW/1ozVwuaIWAaIiCVgcykR
9Rl6O53z9BZ/Ma/meDYDLAGTETFd2gn4GDjM/dWbpZ0CmFSn1QOVOHWG/3GF/X9CkboT9VHgC+BQ
RPy5Sm1cX70i4jYwpD4GfKkOruLQNyf1LWA5ImbV0Qd8td/zNxIRN9WngAl1cRWHrGX6B2rfeV0H
trX6A81YLSyrWwDUrcBv/RZQ19JLXKci4kwtXgAR8QdwDthb2GkEeFv9BfgceFU9BSyVjFNE3Gw+
f6d35B+mkrnrArUnr2ngOXW7+hDwDjBe0Gfl28zjwHvN9X7gzMob+sBJ4FJEfNIaK+alPnn3HzL1
EWAP8FNJp4g4FhHbIuJZemtoKiLeBb4u5aSua3bMqOuB14F56lhT3aD0Q7d/a/R+tReBy8BYQY/T
wA3gFnAFeB/YCJxt/CaADX12GgH+BmaBGeBiE68nSnkBuxqPWWAOON6MF3Na4fcy9x7Yl4zTjta8
zd9d27XEqQstXw9KkqST1H5sTJIkWZVMXkmSdJJMXkmSdJJMXkmSdJJMXkmSdJJMXkmSdJJMXkmS
dJJMXkmSdJI7J2Ux50ySip4AAAAASUVORK5CYII=
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>To use different colourmaps, we make use of the <code>matplotlib.cm</code> module (where cm stands for Colour Map). The code below demonstrates how we can select colourmaps from the set of already provided maps, and how we can modify them (here by reducing the number of colours in the map). The last example mimics the behaviour of the more sophisticated <code>contour</code> command that also comes with <code>matplotlib</code>.</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[13]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">matplotlib.mlab</span> <span class="k">as</span> <span class="nn">mlab</span>    <span class="c1"># Matlab compatibility commands</span>
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<span class="kn">import</span> <span class="nn">matplotlib.cm</span> <span class="k">as</span> <span class="nn">cm</span>        <span class="c1"># Colour map submodule</span>

<span class="c1">#create matrix Z that contains some data interesting data</span>
<span class="n">delta</span> <span class="o">=</span> <span class="mf">0.025</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="o">-</span><span class="mf">3.0</span><span class="p">,</span> <span class="mf">3.0</span><span class="p">,</span> <span class="n">delta</span><span class="p">)</span>
<span class="n">X</span><span class="p">,</span> <span class="n">Y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">meshgrid</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
<span class="n">Z</span> <span class="o">=</span> <span class="n">mlab</span><span class="o">.</span><span class="n">bivariate_normal</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="mf">3.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">)</span>

<span class="n">Nx</span><span class="p">,</span> <span class="n">Ny</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span>
<span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="n">Nx</span><span class="p">,</span> <span class="n">Ny</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>  <span class="c1"># next plot will be shown in</span>
                        <span class="c1"># first subplot in Nx x Ny</span>
                        <span class="c1"># matrix of subplots</span>

<span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">Z</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">cm</span><span class="o">.</span><span class="n">jet</span><span class="p">)</span>  <span class="c1"># default colourmap &#39;jet&#39;</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;colourmap jet&quot;</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="n">Nx</span><span class="p">,</span> <span class="n">Ny</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>   <span class="c1"># next plot for second subplot</span>
<span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">Z</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">cm</span><span class="o">.</span><span class="n">jet_r</span><span class="p">)</span>  <span class="c1"># reverse colours in jet</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;colourmap jet_r&quot;</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="n">Nx</span><span class="p">,</span> <span class="n">Ny</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">Z</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">cm</span><span class="o">.</span><span class="n">gray</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;colourmap gray&quot;</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="n">Nx</span><span class="p">,</span> <span class="n">Ny</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">Z</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">cm</span><span class="o">.</span><span class="n">hsv</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;colourmap hsv&quot;</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="n">Nx</span><span class="p">,</span> <span class="n">Ny</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">Z</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">cm</span><span class="o">.</span><span class="n">gist_earth</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;colourmap gist_earth&quot;</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="n">Nx</span><span class="p">,</span> <span class="n">Ny</span><span class="p">,</span> <span class="mi">6</span><span class="p">)</span>
<span class="c1">#make isolines by reducing number of colours to 10</span>
<span class="n">mycmap</span> <span class="o">=</span> <span class="n">cm</span><span class="o">.</span><span class="n">get_cmap</span><span class="p">(</span><span class="s1">&#39;jet&#39;</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>    <span class="c1"># 10 discrete colors</span>
<span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">Z</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">mycmap</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;colourmap jet</span><span class="se">\n</span><span class="s2">(10 colours only)&quot;</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="s2">&quot;pylabimshowcm.pdf&quot;</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
ksuH6gAAAABJRU5ErkJggg==
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Plots-of-z&#8196;=&#8196;f(x,&#8198;y)-and-other-features-of-Matplotlib">Plots of <em>z</em>&#8196;=&#8196;<em>f</em>(<em>x</em>,&#8198;<em>y</em>) and other features of Matplotlib<a class="anchor-link" href="#Plots-of-z&#8196;=&#8196;f(x,&#8198;y)-and-other-features-of-Matplotlib">&#182;</a></h3><p>Matplotlib has a large number of features and can create all the standard (1d and 2d) plots such as histograms, pie charts, scatter plots, 2d-intensity plots (i.e. <em>z</em> = <em>f</em>(<em>x</em>, <em>y</em>)) and contour lines) and much more. Figure [fig:pylabcontour_demo] shows such an example (the <code>contour_demo.py</code> program is a standard example of the <code>pylab</code> package). This link provides source code to produce this kind of plot: <a href="http://matplotlib.org/examples/pylab_examples/contour_demo.html">contour_demo.py</a></p>
<p>Other examples are</p>
<ul>
<li><a href="http://matplotlib.org/users/screenshots.html">http://matplotlib.org/users/screenshots.html</a></li>
<li><a href="http://matplotlib.org/gallery.html">http://matplotlib.org/gallery.html</a></li>
<li>Recently, creation of 3d-plots has been added to pylab: <a href="http://matplotlib.org/examples/mplot3d/index.html#mplot3d-examples">http://matplotlib.org/examples/mplot3d/index.html#mplot3d-examples</a></li>
</ul>
<p><img src="static/images/pylab/contour_demo.png" alt="The output of contour_demo.py." style="width:80.0%" /></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Visual-Python">Visual Python<a class="anchor-link" href="#Visual-Python">&#182;</a></h2><p>Visual Python is a Python module that makes it fairly easy to create and animate three-dimensional scenes.</p>
<p>Further information:</p>
<ul>
<li><p>The Visual Python home page</p>
</li>
<li><p>The Visual Python documentation (explaining all objects with all their parameters)</p>
</li>
</ul>
<p>Short videos introducing Visual Python:</p>
<ul>
<li><p>Shawn Weatherford, Jeff Polak (students of Ruth Chabay): <a href="http://www.youtube.com/vpythonvideos">http://www.youtube.com/vpythonvideos</a></p>
</li>
<li><p>Eric Thompson: <a href="http://showmedo.com/videotutorials/series?name=pythonThompsonVPythonSeries">http://showmedo.com/videotutorials/series?name=pythonThompsonVPythonSeries</a></p>
</li>
</ul>
<h3 id="Basics,-rotating-and-zooming">Basics, rotating and zooming<a class="anchor-link" href="#Basics,-rotating-and-zooming">&#182;</a></h3><p>Here is an example showing how to create a red and a blue sphere at two different positions together with a flat box (<code>vpythondemo1.py</code>):</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">visual</span>
<span class="n">sphere1</span> <span class="o">=</span> <span class="n">visual</span><span class="o">.</span><span class="n">sphere</span><span class="p">(</span><span class="n">pos</span><span class="o">=</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">visual</span><span class="o">.</span><span class="n">color</span><span class="o">.</span><span class="n">blue</span><span class="p">)</span>
<span class="n">sphere2</span> <span class="o">=</span> <span class="n">visual</span><span class="o">.</span><span class="n">sphere</span><span class="p">(</span><span class="n">pos</span><span class="o">=</span><span class="p">[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">visual</span><span class="o">.</span><span class="n">color</span><span class="o">.</span><span class="n">red</span><span class="p">,</span> <span class="n">radius</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
<span class="n">base</span> <span class="o">=</span> <span class="n">visual</span><span class="o">.</span><span class="n">box</span><span class="p">(</span><span class="n">pos</span><span class="o">=</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">length</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><img src="static/images/visual/vpythondemo1.png" alt="Snapshot of vpythondemo1.py." style="width:50.0%" /></p>
<p>Once you have created such a visual python scene, you can</p>
<ul>
<li><p>rotate the scene by pressing the right mouse button and moving the mouse</p>
</li>
<li><p>zoom in and out by pressing the middle mouse button (this could be the wheel) and moving the mouse up and down. (On some (Windows?) installations, one has to press the left and the right mouse button simultaneously and then move the move the mouse up and down to zoom.)</p>
</li>
</ul>
<h3 id="Setting-the-frame-rate-for-animations">Setting the frame rate for animations<a class="anchor-link" href="#Setting-the-frame-rate-for-animations">&#182;</a></h3><p>A particular strength of Visual Python is its ability to display time-dependent data:</p>
<ul>
<li>A very useful command is the <code>rate()</code> command which ensures that a loop is only executed at a certain frame rate. Here is an example printing exactly two “Hello World”s per second (<code>vpythondemo2.py</code>):</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">visual</span>

<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">):</span>
    <span class="n">visual</span><span class="o">.</span><span class="n">rate</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
    <span class="k">print</span><span class="p">(</span><span class="s2">&quot;Hello World (0.5 seconds per line)&quot;</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<ul>
<li>All Visual Python objects (such as the spheres and the box in the example above) have a <code>.pos</code> attribute which contains the position (of the centre of the object [sphere,box] or one end of the object [cylinder,helix]). Here is an example showing a sphere moving up and down (<code>vpythondemo3.py</code>):</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">visual</span><span class="o">,</span> <span class="nn">math</span>

<span class="n">ball</span> <span class="o">=</span> <span class="n">visual</span><span class="o">.</span><span class="n">sphere</span><span class="p">()</span>
<span class="n">box</span> <span class="o">=</span> <span class="n">visual</span><span class="o">.</span><span class="n">box</span><span class="p">(</span> <span class="n">pos</span><span class="o">=</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">],</span> <span class="n">width</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">length</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mf">0.5</span> <span class="p">)</span>

<span class="c1">#tell visual not to automatically scale the image</span>
<span class="n">visual</span><span class="o">.</span><span class="n">scene</span><span class="o">.</span><span class="n">autoscale</span> <span class="o">=</span> <span class="bp">False</span>

<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1000</span><span class="p">):</span>
    <span class="n">t</span> <span class="o">=</span> <span class="n">i</span><span class="o">*</span><span class="mf">0.1</span>
    <span class="n">y</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">t</span><span class="p">)</span>

    <span class="c1">#update the ball&#39;s position</span>
    <span class="n">ball</span><span class="o">.</span><span class="n">pos</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span>

    <span class="c1">#ensure we have only 24 frames per second</span>
    <span class="n">visual</span><span class="o">.</span><span class="n">rate</span><span class="p">(</span><span class="mi">24</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><img src="static/images/visual/vpythondemo3.png" alt="Snapshot of vpythondemo3.py." style="width:50.0%" /></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Tracking-trajectories">Tracking trajectories<a class="anchor-link" href="#Tracking-trajectories">&#182;</a></h3><p>You can track the trajectory of an object using a “curve”. The basic idea is to append positions to that curve object as demonstrated in this example (<code>vpythondemo4.py</code>):</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">visual</span><span class="o">,</span> <span class="nn">math</span>

<span class="n">ball</span> <span class="o">=</span> <span class="n">visual</span><span class="o">.</span><span class="n">sphere</span><span class="p">()</span>
<span class="n">box</span> <span class="o">=</span> <span class="n">visual</span><span class="o">.</span><span class="n">box</span><span class="p">(</span> <span class="n">pos</span><span class="o">=</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">],</span> <span class="n">width</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">length</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mf">0.5</span> <span class="p">)</span>
<span class="n">trace</span><span class="o">=</span><span class="n">visual</span><span class="o">.</span><span class="n">curve</span><span class="p">(</span> <span class="n">radius</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">visual</span><span class="o">.</span><span class="n">color</span><span class="o">.</span><span class="n">green</span><span class="p">)</span>

<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1000</span><span class="p">):</span>
    <span class="n">t</span> <span class="o">=</span> <span class="n">i</span><span class="o">*</span><span class="mf">0.1</span>
    <span class="n">y</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">t</span><span class="p">)</span>

    <span class="c1">#update the ball&#39;s position</span>
    <span class="n">ball</span><span class="o">.</span><span class="n">pos</span> <span class="o">=</span> <span class="p">[</span><span class="n">t</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span>

    <span class="n">trace</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="n">ball</span><span class="o">.</span><span class="n">pos</span> <span class="p">)</span>

    <span class="c1">#ensure we have only 24 frames per second</span>
    <span class="n">visual</span><span class="o">.</span><span class="n">rate</span><span class="p">(</span><span class="mi">24</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><img src="static/images/visual/vpythondemo4.png" alt="Snapshot of vpythondemo4.py." style="width:50.0%" /></p>
<p>As with most visual Python objects, you can specify the colour of the curve (also per appended element!) and the radius.</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Connecting-objects-(Cylinders,-springs,-&#8230;)">Connecting objects (Cylinders, springs, &#8230;)<a class="anchor-link" href="#Connecting-objects-(Cylinders,-springs,-&#8230;)">&#182;</a></h3><p>Cylinders and helices can be used to “connect” two objects. In addition to the <code>pos</code> attribute (which stores the position of one end of the object), there is also an <code>axis</code> attribute which stores the vector pointing from <code>pos</code> to the other end of the object. Here is an example showing this for a cylinder: (<code>vpythondemo5py</code>):</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">visual</span><span class="o">,</span> <span class="nn">math</span>

<span class="n">ball1</span> <span class="o">=</span> <span class="n">visual</span><span class="o">.</span><span class="n">sphere</span><span class="p">(</span> <span class="n">pos</span> <span class="o">=</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span> <span class="n">radius</span><span class="o">=</span><span class="mi">2</span> <span class="p">)</span>
<span class="n">ball2</span> <span class="o">=</span> <span class="n">visual</span><span class="o">.</span><span class="n">sphere</span><span class="p">(</span> <span class="n">pos</span> <span class="o">=</span> <span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span> <span class="n">radius</span><span class="o">=</span><span class="mi">2</span> <span class="p">)</span>
<span class="n">connection</span> <span class="o">=</span> <span class="n">visual</span><span class="o">.</span><span class="n">cylinder</span><span class="p">(</span><span class="n">pos</span> <span class="o">=</span> <span class="n">ball1</span><span class="o">.</span><span class="n">pos</span><span class="p">,</span> \
                             <span class="n">axis</span> <span class="o">=</span> <span class="n">ball2</span><span class="o">.</span><span class="n">pos</span> <span class="o">-</span> <span class="n">ball1</span><span class="o">.</span><span class="n">pos</span><span class="p">)</span>

<span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">):</span>
    <span class="c1">#move ball2 </span>
    <span class="n">ball2</span><span class="o">.</span><span class="n">pos</span> <span class="o">=</span> <span class="p">(</span><span class="o">-</span><span class="n">t</span><span class="p">,</span><span class="n">math</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">t</span><span class="p">),</span><span class="n">math</span><span class="o">.</span><span class="n">cos</span><span class="p">(</span><span class="n">t</span><span class="p">))</span>

    <span class="c1">#keep cylinder connection between ball1 and ball2</span>
    <span class="n">connection</span><span class="o">.</span><span class="n">axis</span> <span class="o">=</span> <span class="n">ball2</span><span class="o">.</span><span class="n">pos</span> <span class="o">-</span> <span class="n">ball1</span><span class="o">.</span><span class="n">pos</span>

    <span class="n">visual</span><span class="o">.</span><span class="n">rate</span><span class="p">(</span><span class="mi">24</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="3d-vision">3d vision<a class="anchor-link" href="#3d-vision">&#182;</a></h3><p>If you have access to “anaglyphic” (<em>i.e.</em> colored) glasses (best red-cyan but red-green or red-blue works as well), then you can switch visual python into this stereo mode by adding these two lines to the beginning of your program:</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<div class="highlight"><pre><span></span><span class="n">visual</span><span class="o">.</span><span class="n">scene</span><span class="o">.</span><span class="n">stereo</span><span class="o">=</span><span class="s1">&#39;redcyan&#39;</span>
<span class="n">visual</span><span class="o">.</span><span class="n">scene</span><span class="o">.</span><span class="n">stereodepth</span><span class="o">=</span><span class="mi">1</span>
</pre></div>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Note the effect of the <code>stereodepth</code> parameter:</p>
<ul>
<li><p><code>stereodepth=0</code>: 3d scene “inside” the screen (default)</p>
</li>
<li><p><code>stereodepth=1</code>: 3d scene at screen surface (this often looks best)</p>
</li>
<li><p><code>stereodepth=2</code>: 3d scene sticking out of the screen</p>
</li>
</ul>
<p><img src="static/images/visual/vpythondemo3_3d.png" alt="Snapshot of vpythondemo3.py in 3d mode (’redcyan’). With red/cyan glasses, this appears as a 3d image (with spatial depth)." style="width:50.0%" /></p>
<h2 id="Visualising-higher-dimensional-data">Visualising higher dimensional data<a class="anchor-link" href="#Visualising-higher-dimensional-data">&#182;</a></h2><p>Often, we need to understand data defined at 3d positions in space. The data itself is often a scalar field (such as temperature) or a 3d vector (such as velocity or magnetic field), or occasionally a tensor. For example for a 3d-vector field <em>f</em> defined in 3d-space ($\vec{f}(\vec{x})$ where $\vec{x} \in I\!\!R^3$ and $\vec{f}(\vec{x})
\in I\!\!R^3$) we could draw a 3d-arrow at every (grid) point in space. It is common for these data sets to be time dependent.</p>
<p>The probably most commonly used library in Science and Engineering to visualise such data sets is probably VTK, the Visualisation ToolKit (<a href="http://vtk.org">http://vtk.org</a>). This is a substantial C++ library with interfaces to high level languages, including Python.</p>
<p>One can either call these routines directly from Python code, or write the data to disk in a format that the VTK library can read (so called vtk data files), and then use stand-alone programme such as Mayavi, ParaView and VisIt to read these data files and manipulate them (ofter with a GUI). All three of these are using the VTK library internally, and can read vtk data files.</p>
<p>These package is very well suited to visualise static and timedependent 2d and 3d-fields (scalar, vector and tensor fields). Two examples are shown below.</p>
<p>They can be used as a stand-alone executables with a GUI to visualise VTK files. It can also be scripted from a Python program, or used interactively from a Python session.</p>
<h3 id="Mayavi,-Paraview,-Visit">Mayavi, Paraview, Visit<a class="anchor-link" href="#Mayavi,-Paraview,-Visit">&#182;</a></h3><ul>
<li><p>Mayavi Home page <a href="http://code.enthought.com/projects/mayavi/">http://code.enthought.com/projects/mayavi/</a></p>
</li>
<li><p>Paraview Home page <a href="http://paraview.org">http://paraview.org</a></p>
</li>
<li><p>VisIt Home page <a href="https://wci.llnl.gov/simulation/computer-codes/visit/">https://wci.llnl.gov/simulation/computer-codes/visit/</a></p>
</li>
</ul>
<p><img src="static/images/mayavi/vector_field_combination.png" alt="image" style="width:49.0%" /><img src="static/images/mayavi/mayavi-samp.png" alt="image" style="width:49.0%" /></p>
<p>Two examples from MayaVi visualisations.</p>
<h3 id="Writing-vtk-files-from-Python-(pyvtk)">Writing vtk files from Python (pyvtk)<a class="anchor-link" href="#Writing-vtk-files-from-Python-(pyvtk)">&#182;</a></h3><p>A small but powerful Python library is pyvtk available at <a href="https://code.google.com/p/pyvtk/">https://code.google.com/p/pyvtk/</a>. This allows to create vtk files from Python data structures very easily.</p>
<p>Given a finite element mesh or a finite difference data set in Python, one can use pyvtk to write such data into files, and then use one of the visualisation applications listed above to load the vtk files and to display and investigate them.</p>

</div>
</div>
</div>
    </div>
  </div>
</body>

 


</html>
